当前位置:首页 » 文件管理 » a端上传

a端上传

发布时间: 2023-09-12 17:09:07

A. 前端上传文件的几种方法

1.表单上传

最传统的图片上传方式是form表单上传,使用form表单的input[type=”file”]控件,打开系统的文件选择对话框,从而达到选择文件并上传的目的。

form表单上传

表单上传需要注意以下几点:

(1).提供form表单,method必须是post。

(2).form表单的enctype必须是multipart/form-data。

javascript学习交流群:453833554

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码。HTML表单如何打包数据文件是由enctype这个属性决定的。enctype有以下几种取值:

application/x-www-form-urlencoded:在发送前编码所有字符(默认)(空格被编码为’+’,特殊字符被编码为ASCII十六进制字符)。

multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

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

默认enctype=application/x-www-form-urlencoded,所以表单的内容会按URL规则编码,然后根据表单的提交方法:

method=’get’ 编码后的表单内容附加在请求连接后,

method=’post’ 编码后的表单内容作为post请求的正文内容。

B. 怎么用ajax实现上传文件的功能

HTTP File Server

http-file-server是用 python 实现的 HTTP 文件服务器,支持上传和下载文件。

运行

$ python file-server.py files 8001

其中第一个参数files是存放文件的路径,第二个参数8001是 HTTP 服务器端口。

接口

1. 读取文件

GET /pathtofile/filename

2. 读取文件夹下所有文件(已经忽略隐藏文件)

GET /path

返回文件列表为JSON数组,文件名末尾带有/的表示是文件夹。filename为文件名,mtime为修改时间。

[{"filename":"f1.txt","mtime":1001},{"filename":"p3/","mtime":1002}]

3. 上传文件

采用POST方式上传文件,URL参数中传参数name表示上传的文件名,POST内容为文件内容。

POST /upload?name=filename

ajax示例:

// file is a FileReader object
var data = file.readAsArrayBuffer();
var xhr = new XMLHttpRequest();
var url = "http://localhost:8001/upload?name=xxx.md";
xhr.open("post", url, true);
xhr.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xhr.onreadystatechange = function() {
if (xhr.readyState==4 && xhr.status==200)
{
console.log(xhr.responseText);
}
}
xhr.send(data);

文件名 filename 可以包含相对路径。比如:upload?name=md/xxx.md。则上传至md目录下。

C. asp如何实现文件上传功能

基本原理是:采用ADO Stream对象的BinaryRead方法将FORM中的所有数据读出,从中截取出所需的文件数据,以二进制文件方式存盘。

下面是上传文件页面的一个例子:

<html>

<body>

<form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp">

<input type="file" name="FileName">

<INPUT TYPE="Submit" VALUE="Upload"></TD>

</form>

</body>

</html>

(3)a端上传扩展阅读

几种文件上传技术的比较

1、基于HTTP协议

该方法需要编程者利用第三方软件,如DELPHI、VB等,在应用程序中先进行HTTP协议编程,然后将待上传文件内容按HTTP协议的格式打包,最后向WEB服务器发送上传的请求报文,从而实现文件的上传。

因为DELPHI和VB不能编写完整的WEB网络程序,只能编写WEB小应用程序,因此,该方法只用于功能受限的网络应用。

2、基于VB(或DELPHI等)开发的文件上传组件

该方法利用VB(或DELPHI等编程语言)开发ASP服务器组件,实现特定的文件上传服务。它首先利用ASP表单功能将文件(二进制格式)从用户端上传到服务器端,然后使用VB开发的组件,对二进制文件进行处理,成为可以正常读写的文件。

该方法要求编程者不仅掌握ASP语言,而且还能利用VB等第三方语言进行组件编程,增加了开发的难度。

3、基于数据库技术

该方法和上个方法有类似之处。不同的地方在于对上传的二进制文件的处理上。它使用数据库来保存二进制文件。无论是小型数据库还是大型数据库都提供了存储二进制数据的数据类型,只要以Append Chunk方式将数据存入相应的字段就可以了。

该方法虽然简单可行,但是因为每次上传的文件大小都是不一样的,因此,会对数据库的空间造成很大的浪费,降低了数据的访问速度;并且使得文件只能在数据库环境下进行访问,造成了很大的不便。

D. Android 上传图片到服务器

final Map<String, String> params = new HashMap<String, String>();
params.put("send_userId", String.valueOf(id));
params.put("send_email", address);
params.put("send_name", name);
params.put("receive_email", emails);

final Map<String, File> files = new HashMap<String, File>();
files.put("uploadfile", file);

final String request = UploadUtil.post(requestURL, params, files);

E. apache 如何http上传文件

JAVA代码

sql">StringtargetUrl="http://localhost:8080/Test";
PostMethodfilePost=newPostMethod(targetUrl){//这个用来中文乱码
publicStringgetRequestCharSet(){
return"UTF-8";//
}
};
try{
HttpClientclient=newHttpClient();
Filefile=newFile("c:/新闻.xml");
Part[]parts=newPart[]{newCustomFilePart(file.getName(),file)};
filePost.setRequestEntity(newMultipartRequestEntity(parts,filePost.getParams()));
intstatuscode=client.executeMethod(filePost);
if(statuscode==HttpStatus.SC_OK){
System.out.println("添加文件成功");
}else{
System.out.println("添加文件失败");
}
}catch(Exceptionex){
ex.printStackTrace();
}
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.OutputStream;

importorg.apache.commons.httpclient.methods.multipart.FilePart;
importorg.apache.commons.httpclient.util.EncodingUtil;
/**
*解决中文文件名乱码
*/
{
publicCustomFilePart(Stringfilename,Filefile)
throwsFileNotFoundException{
super(filename,file);
}

(OutputStreamout)throwsIOException{
super.sendDispositionHeader(out);
Stringfilename=getSource().getFileName();
if(filename!=null){
out.write(EncodingUtil.getAsciiBytes(FILE_NAME));
out.write(QUOTE_BYTES);
out.write(EncodingUtil.getBytes(filename,"utf-8"));
out.write(QUOTE_BYTES);
}
}
}

而服务端使用apache的commonfileupload:

Filetempfile=newFile(System.getProperty("java.io.tmpdir"));//采用系统临时文件目录
=newDiskFileItemFactory();
diskFileItemFactory.setSizeThreshold(4096);//设置缓冲区大小,这里是4kb
diskFileItemFactory.setRepository(tempfile);//设置缓冲区目录
ServletFileUploadfu=newServletFileUpload(diskFileItemFactory);
fu.setSizeMax(4194304);//限制文件大小最大为4M
ListfileItems=fu.parseRequest(request);
Iteratori=fileItems.iterator();
while(i.hasNext()){
FileItemfi=(FileItem)i.next();
StringfileName=fi.getName();
if(fileName!=null){
FilefullFile=newFile(fi.getName());
FilesavedFile=newFile(uploadPath,fullFile.getName());
fi.write(savedFile);
}
}
System.out.println("uploadsucceed");
热点内容
apk反编译入门 发布:2025-01-25 01:26:43 浏览:472
英雄联盟在哪投诉脚本 发布:2025-01-25 01:26:43 浏览:314
php在线统计 发布:2025-01-25 01:26:42 浏览:65
手机加密室 发布:2025-01-25 01:25:57 浏览:219
搭建excel服务器 发布:2025-01-25 01:25:19 浏览:1000
双系统win7和linux 发布:2025-01-25 01:25:19 浏览:606
为什么苹果手机摄像比安卓好 发布:2025-01-25 01:06:48 浏览:787
linux查看系统多少位 发布:2025-01-25 01:04:31 浏览:121
云服务器体验香港虚拟主机空间 发布:2025-01-25 00:51:19 浏览:812
空气能膨胀罐如何配置 发布:2025-01-25 00:50:33 浏览:312