How to upload file using javascript?
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 | <form method="post" action="#" onsubmit="uploadImage"> <input type="file" name="imgFile"> <input type="submit" id="submit" value="upload"> </form> |
如何使用带Ajax调用的javascript上传图像。
是的,这是可能的,下面是非常简单的代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function upload() { var data = new FormData(), files = // some <input type="file" /> data.append('image', files[0]); $.ajax({ url: // Your ajax url, say it's upload.php, type: 'post', dataType: 'json', data: data, processData: false, contentType: false, success: function(image) { // whatever you want to do } }); }; |
然后在upload.php中,您需要选择
如果您想要纯JS,这只是一个快速的JavaScript解决方案。
1 2 3 4 5 6 7 8 9 10 | var file = document.getElementById('id of your input:file').files[0]; var ajax = new XMLHttpRequest; var formData = new FormData; formData.append('imagefile', file); ajax.upload.addEventListener("progress", myProgressHandler, false); ajax.addEventListener('load', myOnLoadHandler, false); ajax.open('POST', 'upload.php', true); ajax.send(formData); |
注意:一些消息来源说,调用Ajax的
事件:
1 2 3 4 5 6 7 8 9 10 | function myProgressHandler(event) { //your code to track upload progress var p = Math.floor(event.loaded/event.total*100); document.title = p+'%'; } function myOnLoadHandler(event) { // your code on finished upload alert (event.target.responseText); } |
您还可以添加更多的事件处理程序,如"
您只需要对输入文件元素(代码的上部)的"
此外,您还可以编写一些
1 2 3 4 5 6 7 8 9 10 11 12 | function featuresCheck() { var res = window.XMLHttpRequest && window.FormData && window.addEventListener; if (res) return true; else return false; } /* and test it in your code */ if (featuresCheck()) { // use ajax upload } else { // use simple file uploader } |
如果你想使用文件输入的
注意安全。在将上载的文件从临时位置移动之前,请仔细检查它们(检查mime类型、扩展名、重命名)。