回答
您需要將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. Django其他框架和文件上傳
- 2. 存儲與jquery文件上傳(或其他插件)
- 3. 文件上傳與其他字段
- 4. Jquery或JS:如何檢查字符串上的無效字符?
- 5. 使用字符串作爲如─其他
- 6. 如何對字符串上的其他字符執行操作?
- 7. 如何找到字符串的XML文件,並與其他字符串(值)
- 8. Jquery mobile(或其他js框架)和自定義按鈕
- 9. 將字符串轉換爲XML文檔與jquery或其他方式
- 10. Android:將文件與其他POST字符串一起上傳到頁面
- 11. 如何區分jQuery選擇器字符串與其他字符串
- 12. 使用nsIZipWriter或其他將字符串壓縮爲字符串?
- 13. 與string.replace(或其他字符串修改)不工作
- 14. codeigniter文件上傳與其他元素
- 15. 文件上傳與其他客戶端
- 16. 如何將字符串文字用作其他左值?
- 17. 金字塔AuthTktAuthenticationPolicy與其他框架
- 18. 與ZK框架上傳文件
- 19. 上傳文件與框架Zope
- 20. 如何使用javascript,jquery或其他javascript框架過濾數據?
- 21. 使用jQuery或JS如何將字符串轉換爲鏈接?
- 22. 如何替換文件中的字符串與其他文件的內容
- 23. 將字符串作爲標籤或其他值傳遞給按鈕
- 24. 將字符串作爲文本文件上傳到SkyDrive?
- 25. Android:將字符串作爲文本文件上傳到skydrive
- 26. NSString操作符(如果字符串比其他字符串大)
- 27. 執行字符串作爲JS或Jquery的
- 28. PHP判斷字符串作爲一個人的名字或其他文本
- 29. jquery:如何將其他.js文件包含到.js中
- 30. 如何創建框架與其他框架和庫依賴?
請澄清一下:你是否有文件路徑作爲字符串,或者你有文件內容作爲字符串,你想它作爲文件上傳? – 2010-06-10 07:54:20
@Marko:它看起來像他有一個字符串中的文件內容,他從ajax請求中獲得。 – 2010-06-10 08:01:24