如何成功上传HTML文件

如何成功上传HTML文件,第1张

HTML中使用input type="file"上传文件时,代码中只能得到文件的名称,而有些特殊的需要要求得到上传文件的绝对路径,为此采用Javascript实现得到文件的绝对路径。

<form name="thisform" method="post"

action="<%=request.getContextPath()%>/movieManage.do" id="thisform" enctype="multipart/form-data">

<input type="file" name="theFile" onchange="document.getElementById('theFilePath').value=this.value"/>

<input type="hidden" id="theFilePath" name="theFilePath" value="">

</form>

注意:要有enctype="multipart/form-data"

Action代码:

String filePath = request.getParameter("theFilePath")

filePath既是上传文件的绝对路径。

浏览器中测试:

Firefox和IE中可以得到绝对路径。

form 将表单元素包裹起来,受form包裹的表单元素才会提交给服务器。

<form action=”地址” method=””>

表单元素

</form>

form标签是表单的外壳,主要有四个属性:

action:表单提交的地址(后台服务器地址)

method:提交表单的方法,两种请求方式,post、get

target:在何处打开action

enctype:(编码方式)

applocation/x-www-form-erlencoded 在发送前编码所有字符(默认)

text/plain:空格转换为”+”号,但不对特殊字符编码

multipart/form-data:使用包含文件上传控件的表单时,必须使用该值。例如:上传音频、视频。

1、区别:(体现在方式、安全、数据量三个方面)

- 方式,点击提交(发请求时),get将请求数据变成”k=value”的形式,然后组装到URL上。post方式提交请求时,数据通过浏览器传输给后台,但是URL没发生变化。

- 安全,get将信息组装到URL上,信息泄露,不安全;post方式的URL没发生变化更加安全。

- 数据量,浏览器地址栏能存放的字符有限的(容量有限),get方式的URL过于冗长,当超出限制时,浏览器自动截断URL,则传给后台的数据不完整,所以对数据大小有限制。而post方式的URL更干净、轻便,能完整地将数据传递给后台,无数据大小限制。

2、什么时候用get,什么时候用post(使用场景)

get:向后台查询东西,如查询论文;即向后台索要数据,用关键词来获取大量数据。安全性要求低,简单。

post:向后台传数据,例论文查重(数据很大,提交给后台)。安全性要求高。

是表单收集信息的元素,主要有以下属性:

<label for="input_username">姓名:</label><input type="text" name="username" id="input_username" placeholder="用户名"/>

效果:

<label for="input_password">密码:</label><input type="password" name="password" id="input_password" placeholder="密码"/>

效果:

效果:

效果:

<label>我的car:</label><select name="transportation"><option value="bus">公交</option><option value="subway" selected>地铁</option><option value="taxi">出租车</option></select>

效果:

<label >评论:</label><textarea name="recomment" placeholder="ddd" cols="60" rows="10"></textarea>

效果:

<label for="zjz">证件照:</label><input type="file" name="photo" id="zjz" accept="image/jpg"/>

其中accept规定了文件格式。

效果:

<input type=”hidden” name=”abc” value=”123”>

点击提交时,hidden里隐藏的数据也提交给了后台;abc=’123’

作用:(1)暂存信息,(用户看不到),便于设计者随时调用程序。

(2)用于安全性校验,例如通过设置hidden隐藏域,服务器可以验证用户权限,避免伪造的假网站提交数据。

<input type="button" value="按钮"/>

效果:

<input type="submit" value="提交"/>

效果:

<input type="reset" value="复位"/>

效果:

在HTML标准中,XMLHttpRequest对象被重新定义,被称为“XMLHttpRequest Level 2”,其中包含了以下5个新特性:

1、支持上传、下载字节流,比如文件、blob以及表单数据。

2、增加了上传、下载中的进度事件。

3、跨域请求的支持。

4、允许发送匿名请求(即不发送HTTP的Referer部分)。

5、允许设置请求的超时。

在这篇教程中,我们主要关注第一和第二项特性,尤其是第二项——它能够提供我们想要的上传进度。和之前的方案不同,这个方案并不要求服务器作出特殊的设置,因此大家边看教程就可以边动手试试了。

上面图示的就是我们能够实现的内容:

1、显示上传的文件信息,比如文件名、类型、尺寸。

2、一个能够显示真实进度的进度条。

3、上传的速度。

4、剩余时间的估算。

5、已上传的数据量。

6、上传结束后服务器返回的响应。

另外,凭借XMLHttpRequest,我们的上传过程整个都是异步的,因此用户在上传文件的时候,依然可以 *** 作网页当中的其它元素,并不需要专门等待上传的完成。而在上传结束后,我们能够获取服务器发回的响应,因此整个上传过程都显得相当顺理成章。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11721500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存