我已经尝试这样做了一段时间,但这些答案都不适合我。我就是这样做的。
我有一个选择文件和一个提交按钮
<input type="file" name="file" id="file">
<button onclick="doupload()" name="submit">Upload File</button>
然后在我的 javascript 代码中我把这个
function doupload() {
let data = document.getElementById("file").files[0];
let entry = document.getElementById("file").files[0];
console.log('doupload',entry,data)
fetch('uploads/' + encodeURIComponent(entry.name), {method:'PUT',body:data});
alert('your file has been uploaded');
location.reload();
};
如果您喜欢 StackSnippets...
function doupload() {
let data = document.getElementById("file").files[0];
let entry = document.getElementById("file").files[0];
console.log('doupload',entry,data)
fetch('uploads/' + encodeURIComponent(entry.name), {method:'PUT',body:data});
alert('your file has been uploaded');
location.reload();
};
<input type="file" name="file" id="file">
<button onclick="doupload()" name="submit">Upload File</button>
该PUT
方法与POST
方法略有不同。在这种情况下,在用于 chrome 的 Web 服务器中,POST
未实现该方法。
使用 chrome 网络服务器进行测试 -
https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb?hl=en
注意 - 使用 chrome 的网络服务器时,您需要进入高级选项并选中“启用文件上传”选项。如果你不这样做,你会得到一个不允许的错误。