上传的定义

上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到。将制作好的网页、文字、图片等发布到互联网上去,以便让其他人浏览、欣赏。这一过程称为上传。

上传的来源

上传一词来自英文(upload),拆开来“up”为“上”,“load”为“载”,故上传也叫上载,与下载(download)是逆过程。

上传的分类

上传分为web上传和ftp上传,前者直接通过点击网页上的链接即可操作,后者需要专用的ftp工具。

上传的区别

web上传与ftp上传的区别

web上传:即通过浏览器(ie)来上传文件 。

1、通过ie浏览器上传文件,按照“操作向导”一步步操作完成,用户无须培训;

2、通过分配用户权限发布课件,简单,安全;

3、支持断点续传,支持大文件上传;

4、上传课件属性(格式,上传时间,人员等)自动生成,方便快捷;

5、上传后的课件,配有审核机制,保证课件质量;

6、审核后的课件,自动归类,用户通过校园网浏览;

ftp上传:简称文件传输协议,通过ftp上传。

1、上传之前,需要安装专业上传软件,并对软件加以学习,用户需要学习上传软件;

2、需要建立ftp服务器及配置设置,专业性强;

3、不支持断点续传,只能重新上传,支持大文件上传;

4、ftp上传后,需要从后台手工输入课件属性,费时费力;

5、ftp上传后的课件,没有审核机制;

6、ftp上传的课件后需要手工进行归类,比较烦麻;

上传小知识

在上传主页之前,让我们先来认识internet上一个基本的概念———ftp。它是英文“file transfer protocol”(文件传输协议)的缩写,不过我们今天已经把它看成了一个动词,意思是说在计算机和计算机之间传输文件。把自己制作好的主页上传到服务器上,就要用到ftp。

有许多种方法可以把主页文件上传到internet服务器上,下面是常见的五种方法。

1、使用ftp软件上传主页文件

这是最常用、最方便也是功能最为强大的主页上传方法。现在网上这类软件很多,像cuteftp、ws-ftp已经广受网友欢迎。这类软件除了可以完成文件传输的功能以外,还可以通过它们完成站点管理、远程编辑服务器文件等工作,一些常用的ftp软件还有断点续传、任务管理、状态监控等功能,可以让你的上传工作变得非常轻松。

2、使用“兼职”的ftp软件上传主页文件

所谓兼职的ftp软件,是指软件本身并不是专门用来完成ftp功能的,主页上传只是其编外任务。例如我们常用的frontpage、dreamweaver、东方主页王ⅱ等都有主页上传、发布的功能。使用这类软件的好处是可以在编辑主页的同时就上传到服务器上查看主页效果,省去了启动软件、登录、设置等诸多麻烦。但是,这种方法往往上传速度较慢,且难以对服务器上的文件进行管理。

3、使用web页面上传主页文件

和前面两种方法相比,这种方法不但没有什么明显的优点,而且速度缓慢、操作麻烦、不支持断点续传。但是,如果你恰恰申请了一个这样的不支持ftp的免费主页空间,那么就只能使用这种笨拙的方法了!

4、通过命令上传主页文件

在很久很久以前,unix系统上的ftp程序是基于命令行的,现在的window95/98/nt/2000/me仍然有基于命令行的ftp程序(进入dos模式,输入ftp就可以了)。使用这种方法首先要掌握几十条命令不说,而且屏幕上通常只能显示25或50行文字,很不方便。图形界面的ftp软件流行之后,这种方法已经被大多数网友抛弃了,只供少数骨灰级的网虫练习他们的指法。

5、通过e-mail上传

这种方法要求你把主页文件通过e-mail发给系统管理员,然后再由系统管理员把它们放到服务器上。这是最简单也是最复杂的方法,随着网络条件的提高,这种方法已逐渐销声匿迹了。

大文件上传

以前也做过文件上传,但都是些小文件,不超过2m。 这次要求上传100m以上的东西。 没办法找来资料研究了一下。基于web的文件上传可以使用ftp和http两种协议,用ftp的话虽然传输稳定,但安全性是个严重的问题,而且ftp服务器读用户库获取权限,这样对于用户使用来说还是不太方便。 剩下只有http。在http中有3种方式,put、webdav、rfc1867,前2种方法不适合大文件上传,目前我们使用的web上传都是基于rfc1867标准的html中基于表单的文件上传。

一、先简要介绍一下rfc1867(form-based file upload in html)标准:

1.带有文件提交功能的html表单

现有的html规范为input元素的type属性定义了八种可能的值,分别是:checkbox, hidden,mage,password,radio,reset,submit,text。 另外,当表单采用post方式的时候,表单默认的具有“application/x-www-form-urlencoded”的enctype属性。

rfc1867标准对html做出了两处修改:

(1)为input元素的type属性增加了一个file选项。

(2)input标记可以具有accept属性,该属性能够指定可被上传的文件类型或文件格式列表。

另外,本标准还定义了一种新的mime类型:multipart/form-data,以及当处理一个带有enctype="multipart/form-data" 并且/或含有的标记的表单时所应该采取的行为。

举例来说,当html表单作者想让用户能够上传一个或更多的文件时,他可以这么写:

file to process:

html dtd里所需要做出的改动是为inputtype实体增加一个选项。此外,我们也建议用一系列用逗号分隔的文件类型来作为input标记的accept属性。

... (其他元素) ...

radio | submit | reset |

image | hidden | file )">

type %inputtype text

name cdata #implied -- required for all but submit and reset

value cdata #implied

src %uri #implied -- for image inputs --

checked (checked) #implied

size cdata #implied --like numbers,

but delimited with comma, not space

maxlength number #implied

align (top|middle|bottom) #implied

accept cdata #implied --list of content types

>

... (其他元素) ...

2.文件传输延迟

在某些情况下,在确实准备接受数据前,服务器先对表单数据中的某些元素(比如说用户名,账号等)进行验证是推荐的做法。但是,经过一定的考虑后,我们认为如果服务器想这样做的话,最好是采用一系列的表单,并将前面所验证过的数据元素作为“隐藏”字段传回给客户端,或者是通过安排表单使那些需要验证的元素先显示出来。这样的话,那些需要做复杂的应用的服务器可以自己维持事务处理的状态,而那些简单的应用的则可以实现得简单些。

http协议可能需要知道整个事务处理中的内容总长度。即使没有明确要求,http客户端也应该提供上传的所有文件的内容总长度,这样一个繁忙的服务器就能够判断文件的内容是否是过大以至于将不能完整地处理,从而返回一个错误代码并关闭该连接,而不用等到接受了所有的数据才进行判断。目前一些现有的cgi应用对所有的post事务都需要知道内容总长度。

如果input标记含有一个maxlength属性,客户端可以将这个属性值看作是服务器端所能够接受的传送文件的最大字节数。在这种情况下,服务器能够在上传开始前,提示客户端在服务器上有多少空间可以用来进行文件上传。但是应该引起注意的是,这仅仅是一个提示,在表单被创建后和文件上传前,服务器的实际需求可能会发生改变。

在任何情况下,如果接受的文件过大的话,任何一个http服务器都有可能在文件传输的过程中中断传输。

3.传输二进制数据的其他解决办法

有些人曾经建议使用一种新的mime类型"aggregate",比如说aggregate/mixed 或是content-transfer-encoding "包"来描述那些不确定长度的二进制数据,而不是靠分解为多个部分来表示。虽然我们并不反对这么做,但这需要增加额外的设计和标准化工作来让大家接受并理解"aggregate"。 从另一方面来说,"分解为多部分"的机制工作得很好,能够非常简单的在客户发送端和服务器接受端加以实现,而且能像其他一些综合处理二进制数据的方式一样高效率地工作。

4.例子

假设服务器段提供的是如下的html:

enctype="multipart/form-data"

method=post>

what is your name?

what files are you sending?

用户在“姓名”字段里面填写"joe blow",对问题''what files are you sending?'',用户选择

了一个文本文件"file1.txt"。

客户段可能发送回如下的数据:

content-type: multipart/form-data, boundary=aab03x

--aab03x

content-disposition: form-d

网页里显示访问的那台服务器,在web服务器中把网页放在那里,才能被访问相关推荐

  1. 为一台计算机配置Web服务器,DNS服务器与DHCP服务器

    实验目的:为一台计算机配置Web服务器,DNS服务器与DHCP服务器 事先准备:三台纯净虚拟机(以下简称为虚拟机A,虚拟机B,虚拟机C)和一台主机 一.配置静态IP 因为要保证实验畅通,所以必须把四台 ...

  2. 针对电脑进行网络诊断显示“您可能需要与该网络的Internet服务提供商ISP签署协议才能获得访问Internet的权限”问题的解决方法

    网络诊断显示"您可能需要与该网络的Internet服务提供商ISP签署协议才能获得访问Internet的权限" 问题发现     今天使用笔记本在进行网络连接后,发现能使用QQ等在 ...

  3. 《网络是怎样连接的》第一章第二节:向DNS服务器查询Web服务器的IP地址

    <网络是怎样连接的>第一章:浏览器生成消息 概述:这本书以 "从在浏览器输入网址,到屏幕显示出网页,当中到底发生了什么?"为疑问,探究其中的过程.本章讲的是浏览器怎么把 ...

  4. 应用程序服务器和Web服务器之间有什么区别?

    应用程序服务器和Web服务器之间有什么区别? #1楼 最大的不同是Web服务器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业务逻辑. #2楼 这取决于特定的体系结构. 某些应用程序服务器 ...

  5. 虚拟主机搭建微信公众号服务器,建web服务器同时如何搭建虚拟主机?方法有几种?...

    所说的虚拟主机就是在一台服务器里运作几个网站,提供WEB.Mail.FTP等服务.那么在搭建wed服务器的同时,那么如何在[url=http://www.iisp.com/ztview/F_qgc5. ...

  6. 2.服务器部署web服务器

    文章目录 1.看图说话 2.开始部署django 3.遇到的坑 4.声明 #前几天按照文档走了一道,也记录了一下操作过程,其实挖了很多坑,没走通.又捯饬了几天终于在ubuntu成功运行了django+ ...

  7. 如何搭建自己的本地服务器,Web服务器

    搭建本地服务器,Web服务器--保姆级教程! 本文首发于https://chens.life/How-to-build-your-own-server.html. 先上图!大致思路就是如此. 前言 暑 ...

  8. 【网络是怎么连接的】—— 1.2 向 DNS 服务器查询 Web 服务器的 IP 地址

    目录 1.2 向 DNS 服务器查询 Web 服务器的 IP 地址 1.2.1 IP地址基础知识 1.2.2 域名和 IP 地址并用的理由 1.2.3 Socket 库提供查询 IP 地址的功能 1. ...

  9. 在家巧用树莓派(广告屏蔽,下载机,NAS服务器,web服务器,私有云)

    广告屏蔽,下载机,NAS服务器,web服务器,私有云 Raspberry Pi(中文名为"树莓派")是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux. ...

  10. 认识服务器与web服务器

    专用服务器:dedicated server 0. 基本概念 服务器是什么? 有时指硬件(不论是虚拟的还是实体的),有时指程序,有时指进程: 程序与进程:进程是内存中正在运行的程序: 带宽(bandw ...

最新文章

  1. 在一个SQL Server表中的多个列找出最大值
  2. APP如何保存数据?——iOS保存数据的4种方式
  3. Windows Installer (MSI) 详解 参数介绍
  4. ubuntu下面的报错Call to undefined function curl_init()
  5. java文件流null_JAVA 获取资源文件对象为NULL
  6. laravel 服务提供者
  7. 一步步手动实现热修复(一)-dex文件的生成与加载
  8. 前端设置画布的高度_【后期修图】ps画布设置详解
  9. 什么是c语言内存编码,c语言内存泄露示例解析
  10. 39基础数据结构:动态数组
  11. 基于matlab的模糊PID控制仿真
  12. 如何高效,安全,稳定的管理多个亚马逊,facebook,google等帐号? 如何配合使用VMlogin防关联,反指纹浏览器操作,同时多开多个帐号?911 S5 多端口转发如何设置?
  13. 优质高效,阿里甩出SpringBoot巅峰之作,进阶不二之选
  14. uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数
  15. 联想小新pro16无法识别网卡MT7921的问题
  16. 人工智能工程师第七期-AI100-专题视频课程
  17. 计算机主机板开机原理与维修,主机板损坏电脑会出现什么现象
  18. 徐直军、何小鹏等大咖加盟,2021互联网岳麓峰会即将重磅开幕
  19. 腾讯云服务器查看防火墙规则,腾讯云云防火墙的常见问题
  20. 【机器人学习】 四足机器人(单腿三自由度)正运动学与轨迹规划仿真(solidwork三维模型+matlab代码)

热门文章

  1. Ubunt php连接oracle,uBuntu PHP Oracle扩展 OCI8安装
  2. websocket 安全_将Websocket与Spring Framework和Vuejs结合使用
  3. 前端html继承的方式,好程序员web前端教程之JS继承实现方式解析
  4. php多表数据排除,thinkphp中多表查询中防止数据重复的sql语句(必看)
  5. mysql 自动化运维工具_部署MySQL自动化运维工具inception+archer
  6. java 做计算器 百度云_用Java做一个简单的计算器
  7. 皮一皮:这婚还结不结...
  8. Serverless 初体验:快速开发与部署一个Hello World(Java版)
  9. 这个操作稳!云厂商开设免费云计算课程,学员独享49元主机套餐包年!
  10. java类功能说明注释添加,IDEA添加Java类注释模版的方法