服务器需要来自名称为“websitetopdf”的表单的 html 或 txt 文件。该文件是在客户端 JavaScript 上动态创建的,并且只能在 Chrome 上运行。
这是应该发送的表单:
<form action="send.php" method="post" enctype="multipart/form-data" name="websitetopdf" id="websitetopdf">
<input name="localfile" type="file" id="localfile" size="58">
<input name="filetype" type="hidden" id="filetype" value="IMG">
<input name="source" type="hidden" id="source" value="SOFT">
<input name="converternow" type="submit" id="converternow" style="width: 130px; font-weight: bold;" value="Convert to Image">
</form>
我想直接将文件发送到send.php,我已经尝试过:
$("#sender").on("click", function(e) {
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://.../send.php", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) console.log(xhr.responseText);
};
xhr.onload = function(e) {
if (xhr.status == 200) console.log("uploaded"); //(correctly uploaded)
else console.log("Error " + e.status + " occurred uploading your file.<br \/>");
};
var blob = new Blob(['abc123'], {type: 'text/plain'});
var formData = new FormData();
formData.append("localfile", blob);
formData.append("filetype", "IMG");
formData.append("source", "SOFT");
xhr.send(formData);
});
我总是从服务器收到“这不是有效文件”
最佳答案
当我在 FormData 对象中为 blob 添加文件名时,它开始工作:
formData.append("localfile", blob, "filename.txt");
关于javascript - 如何通过 XmlHttpRequest 或 $.ajax 创建并发送文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20081146/