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;