1、怎么用http上传一个文件到服务器 python
首先,标准HTTP协议对上传文件等表单的定义在这里:wwwietforg/rfc/rfc1867txt 大概数据包格式如下:
单文件:
Content-type: multipart/form-data, boundary=AaB03x
--AaB03x
content-disposition: form-data; name="field1"
Joe Blow
--AaB03x
content-disposition: form-data; name="pics"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
多文件:
Content-type: multipart/form-data, boundary=AaB03x
--AaB03x
content-disposition: form-data; name="field1"
Joe Blow
--AaB03x
content-disposition: form-data; name="pics"
Content-type: multipart/mixed, boundary=BbC04y
--BbC04y
Content-disposition: attachment; filename="file1.txt"
其次,python上传文件的几种方法:
1 自己封装HTTP的POST数据包:http//stackoverflowcom/questions/680305/using-multipartposthandler-to-post-form-data-with-python
import httplibimport mimetypesdef post_multipart(host, selector, fields, files): content_type, body = encode_multipart_formdata(fields, files) h = httplib.HTTP(host) h.putrequest('POST', selector) h.putheader('content-type', content_type) h.putheader('content-length', str(len(body))) h.endheaders() h.send(body) errcode, errmsg, headers = h.getreply() return h.file.read() def encode_multipart_formdata(fields, files): LIMIT = '----------lImIt_of_THE_fIle_eW_$' CRLF = '\r\n' L = [] for (key, value) in fields: L.append('--' + LIMIT) L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(value) for (key, filename, value) in files:
2、netbox架设HTTP服务器怎样上传文件
http://www.anqn.com/sha.asp?class=367
3、nodejs创建一个http服务器来接收上传的文件
时间有限。自己看
var connect = require('connect')参考 : https://github.com/senchalabs/connect
4、怎么用C实现Http POST功能向Http服务器上传文件
super viewDidLoad];
webview.backgroundColor = [UIColor clearColor];
webview.scalesPageToFit =YES;
webview.delegate =self;
NSURL *url =[[NSURL alloc] initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[webview loadRequest:request];
}
5、如何用jsp将文件上传至http文件服务器
纯jsp? 用Jersey插件可以实现,ftp也可以,我贴出jersey的代码,比较简单。导入jar包即可。
我这里是先从一台服务器上把MP3文件下载下来,然后写成二进制,再利用jersey发送的。发送的代码就只有两三行吧
/**
* 上传歌曲到服务器
* @param url 歌曲播放地址
* @param fileName 歌曲名称
*
* @author 孙文祥
*/
public void upLoadToService(String url, String fileName) {
try {
URL ss = new URL(url);
HttpURLConnection urlc = (HttpURLConnection) ss.openConnection();
urlc.setDoInput(true);// 设置是否要从 URL 连接读取数据,默认为true
urlc.connect();
InputStream bufin = urlc.getInputStream();
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
int len = bufin.available();
byte[] b = new byte[len];
int rc = 0;
while ((rc = bufin.read(b, 0, len)) > 0) {
swapStream.write(b, 0, rc);
}
byte[] in2b = swapStream.toByteArray();
// 实例化Jersey
Client client = new Client();
// 想要发送到的服务器地址,记住,必须设置tomcat服务器的权限,不然无法上传到tomcat
String path = Constant.SERVICE_URL + fileName;
// 设置请求路径
WebResource resource = client.resource(path);
// 发送开始 PUT
resource.put(String.class, in2b);
} catch (Exception e) {
e.printStackTrace();
}
}
6、C# winfrom将文件通过IIS(http协议)上传到服务器上
我给你一种建议:
如果你的系统不要求进行会话保持及服务器向客户端主动通信的话(winform中即有有主动需求也可转主动为被动),可以采用webService模式.
在服务器上设计一个webservice,然后用你的winform调用.
接下来的活就和调用一个DLL是一种效果了.
webService走的是web服务器,例如IIS,所以,基本不用考虑它的多用户下怎么排队的问题,你做asp.net时不是也没有去考虑用户怎么排队的问题吗?
在此基础上,只要你解决了多用户在同时操作时数据不会发生冲突,那就没必要一定要中转一道文件来绕远路了,直接就可以像网站一样与数据库直接交互了.
如果你发现你每一次上传数据行别庞大,那你就要发挥winform的优势了,在网页程序里,想要逐个,逐批的发送数据是很难的,但是在Winform程序里,你可以把大数据量分装成你认为合适的批次发送.还可以实时的看着进度.
原则就是,每一次与webservice的交互响应时间,不要超过一秒钟.
对于一些软件系统来说,用户怕的不是它比别人慢了几秒几分钟,而是用户点一下后,你的程序一点击就死了一样的定在那里,让用户不知所措,直到等它执行完了,才反醒过来,直接给结果.没有中间过程,用户不知道它现在在做什么,做到哪儿了.
7、不通过httpinputfile如何上传文件到服务器
你是想用不想用http协议实现?还是只是不用 inputfile,如果不用http协议,可以用第三方插件,activeMq,或者版其他的如权果http,可以用异步query的fileUpload,或者,通过java建立httpclient上传
8、http文件服务器干什么用的,我看到我的路由器里有FTP服务器和http服务器这两个功能,可以用
路由器中复的ftp有两种,一种在nat设置的映制射,那是把内网主机映射到外网做ftp服务器,另一种是本身的开启ftp,是为了上传或者下载路由本身的配置文件或者升级文件。http是用来访问本机管理路由的服务。
9、c#中如何用http向文件服务器上传,下载文件
webClient类 上传下载很方便!
10、如何使用Indy 的IdHTTP控件上传文件到Web服务器上
代码
procere TForm1.Button4Click(Sender: TObject);
var
response:TStringStream;
MMPFDS:TMsMultiPartFormDataStream;
begin
MMPFDS:=TMsMultiPartFormDataStream.Create;
response:=TStringStream.Create('');
idhttp1.Request.ContentType:=MMPFDS.RequestContentType;
MMPFDS.AddFile('file1','c:\temp\tuneup.txt','text/plain');
MMPFDS.PrepareStreamForDispatch;