回答
您需要將Content-type
請求頭設置爲multipart/form-data
和玩的純醇」的JavaScript(TM)格式的一點,I wrote this但你可以很容易地返工爲圖書館:
編輯:有我咖啡了,所以修改了它的jQuery(無庫版本here):
// Define a boundary, I stole this from IE but you can use any string AFAIK
var boundary = "---------------------------7da24f2e50046";
var body = '--' + boundary + '\r\n'
// Parameter name is "file" and local filename is "temp.txt"
+ 'Content-Disposition: form-data; name="file";'
+ 'filename="temp.txt"\r\n'
// Add the file's mime-type
+ 'Content-type: plain/text\r\n\r\n'
// Add your data:
+ data + '\r\n'
+ '--'+ boundary + '--';
$.ajax({
contentType: "multipart/form-data; boundary="+boundary,
data: body,
type: "POST",
url: "http://asite.com/apage.php",
success: function (data, status) {
}
});
嗯,真好!不知道這在Ajax請求中是可能的。 – 2010-06-10 08:00:39
@Pekka:好的。如果您無法控制要上傳的服務器,並且必須接受使用多部分/表單數據發佈的文本文件,方便使用。 – 2010-06-10 08:16:27
這有效,除了使用express/node進行兩次調整外:1)最後一個邊界需要是'+' - '+ boundary +' - ';'並且ajax調用中的contentType必須是:'' 「multipart/form-data; boundary =」+ boundary' – chovy 2013-01-24 23:35:19
這裏是如何做到這一點,而無需手動建立多部分請求主體:
var s = 'some string data';
var filename = 'foobar.txt';
var formData = new FormData();
formData.append('file', new File([new Blob([s])], filename));
formData.append('another-form-field', 'some value');
$.ajax({
url: '/upload',
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function() {
console.log('ok');
},
error: function() {
console.log('err'); // replace with proper error handling
}
});
似乎很好...我可以將Base64轉碼爲文件對象嗎?如果沒有,我可以使用base64並在服務器上解碼它。但我只是好奇 – redestructa 2016-09-06 08:53:02
FormData對象跨瀏覽器兼容? – 2016-10-05 04:41:14
- 1. Jquery或JS:如何檢查字符串上的無效字符?
- 2. 如何對字符串上的其他字符執行操作?
- 3. 將字符串轉換爲XML文檔與jquery或其他方式
- 4. 如何區分jQuery選擇器字符串與其他字符串
- 5. 使用nsIZipWriter或其他將字符串壓縮爲字符串?
- 6. 與string.replace(或其他字符串修改)不工作
- 7. 如何將字符串文字用作其他左值?
- 8. 文件上傳與其他客戶端
- 9. 金字塔AuthTktAuthenticationPolicy與其他框架
- 10. 將字符串作爲標籤或其他值傳遞給按鈕
- 11. 將字符串作爲文本文件上傳到SkyDrive?
- 12. 執行字符串作爲JS或Jquery的
- 13. PHP判斷字符串作爲一個人的名字或其他文本
- 14. jquery:如何將其他.js文件包含到.js中
- 15. 如何創建框架與其他框架和庫依賴?
- 16. 上傳其他文件
- 17. 如何在其他文本框與條件的jquery
- 18. 如何在NearlyFreeSpeech上設置Sinatra或其他Ruby框架
- 19. 從其他位置獲取實體框架連接字符串?
- 20. MVC實體框架連接字符串引用其他項目
- 21. 如何匹配兩個其他已知字符串之間的字符串,而沒有其他字符與REGEX?
- 22. 如何將字符串傳遞給ofstream :: open作爲文件名
- 23. 如何使用js或JQuery將invisible false設置爲字符串的字符
- 24. Lua string.len,string.lower或任何其他字符串函數不工作
- 25. 上傳一個字符串作爲文件
- 26. 追加字符串作爲文件上傳使用FormData
- 27. 如何使用Ajax文件上傳與其他輸入?
- 28. 如何與其他數據同時上傳文件
- 29. jQuery多文件上傳(mfupload.js)不工作在框架
- 30. 如何將UI組件導出爲字符串或其他東西
請澄清一下:你是否有文件路徑作爲字符串,或者你有文件內容作爲字符串,你想它作爲文件上傳? – 2010-06-10 07:54:20
@Marko:它看起來像他有一個字符串中的文件內容,他從ajax請求中獲得。 – 2010-06-10 08:01:24