【发布时间】:2015-07-02 00:48:52
【问题描述】:
我:我在网上发布的第一个问题“拿走我的童贞”
你:知识渊博,擅长你的工作。
经过数小时的研究,我需要一些重要的帮助。
脚本/代码旨在将文件发送到服务器端 php 脚本processup.php,该脚本将文件存储到特定文件夹。只要我一次上传一个文件,一切都会很好。如果我尝试上传多个文件,它只会上传一个。所以我添加了一个额外的formdata.append 认为这可以解决我的问题,但它所做的只是将同一个文件上传两次。我已经看到可以创建多个 html 表单的示例,但我宁愿坚持使用一种表单。希望我已经解释了我的问题以及我的最终目标是什么。
提前致谢。
这是我的 HTML 代码
<form id="upload_form" enctype="multipart/form-data" method="post">
<input type="file" name="files[]" multiple id="files[]"><br>
<button type="reset" value="Reset">Reset</button><br>
<input type="button" value="Upload Me" onclick="uploadFile()">
<progress id="progressBar" value="0" max="100" style="width:300px;">
</progress>
<h3 id="status"></h3>
<p id="loaded_n_total"></p>
</form>
这里是javascript代码
<script>
function _(el){
return document.getElementById(el);
}
function uploadFile(){
var file = _("files[]").files[0];
//alert(file.name+" | "+file.size+" | "+file.type);
var formdata = new FormData();
formdata.append("files[0]", file);
formdata.append("files[1]", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "processup.php");
ajax.send(formdata);
}
function progressHandler(event){
_("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of"
+event.total;
var percent = (event.loaded / event.total) * 100;
_("progressBar").value = Math.round(percent);
_("status").innerHTML = Math.round(percent)+"% Uploading..";
}
function completeHandler(event){
_("status").innerHTML = event.target.responseText;
_("progressBar").value = 0;
}
function errorHandler(event){
_("status").innerHTML = "Upload Failed";
}
function abortHandler(event){
_("status").innerHTML = "Upload Aborted";
}
</script>
【问题讨论】:
标签: javascript php html ajax upload