Send input files data with ajax
本问题已经有最佳答案,请猛点这里访问。
HTML标记:
1 | <input id="fileSelect" type="file" id="file" name="files[]" multiple="multiple" accept="image/*" /> |
我正在用php上传多个文件。我想创建一个上载文件数组,并用Ajax发送到服务器。如何创建多个选定文件的数组?
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 | jQuery.ajax({ url: 'insertfiles.php', type:"POST", data: { file: // array of selected files. }, success: function(data){ }, error: function(data){ alert( 'Sorry.' ); } }); |
使用下面的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var formData = new FormData($("#formid")[0]); jQuery.ajax ({ url: 'insertfiles.php', type:"POST", data: formData; success: function(data) { }, error: function(data) { alert( 'Sorry.' ); } cache: false, contentType: false, processData: false }); |
希望这对你有帮助
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var formData = new FormData(this); debugger; $.ajax({ url: formURL, type: 'POST', data: formData, mimeType:"multipart/form-data", contentType: false, cache: false, processData: false, success: function (data, textStatus, jqXHR) { debugger; }, error: function (jqXHR, textStatus, errorThrown) { } }); |
上面的代码将帮助您在一次提交调用中发布内容和文件。
post-method参数应包括
支持HTML5文件的现代浏览器在
因为属性已经是一个
JS
1 2 3 4 5 6 | var input = document.getElementById('id'); console.log(input.files); for (var i = 0; i < input.files.length; i++) { console.log(input.files[i]); } |
这是我的多文件上传代码。请参考这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $fileCount = count($_FILES); for($i=0; $i < $fileCount; $i++) { $fileName = (!empty($_FILES["file-$i"]["name"])) ? $_FILES["file-$i"]["name"] : ''; $hostName ="sql111.byethost7.com"; $userName ="b7_15386696"; $passWord ="9827322563"; $dbName ="b7_15386696_db_printer"; $query ="INSERT INTO print_table (NAME, EMAIL, PHONE, ADDRESS, FILENAME, NUMBEROFCOPY, SREQUIREMENTS, FIELD1) VALUES ('$name', '$emailId', '$phone', '$address', '$fileName', '$ncopy', '$requirements', CONVERT_TZ(NOW(),'+00:00','+09:30'))"; $connect = mysqli_connect($hostName,"$userName","$passWord","$dbName"); // Check connection if (mysqli_connect_errno()) { echo"Failed to connect to MySQL:" . mysqli_connect_error(); } |