【问题标题】:upload multiple photos with ajax, js and php使用 ajax、js 和 php 上传多张照片
【发布时间】:2020-09-27 02:23:40
【问题描述】:

我正在尝试将图像上传到 htdocs 以保存到 DB,但它失败了。当我使用 name input = myFile[] 时,我不知道 php 是否使用 formData 获取数据?浏览器总是返回 myFile 不存在的结果。如果我输入 name = myFile 它是一样的

html code
<div class="form-group col-sm-12" >
<form action="upload2.php" method="post" enctype="multipart/form-data">
<input type="file" class="form-control col-sm-9" id="filemota" multiple="multiple"/>
<input class="btn col-sm-3" onclick="uploadanhmota()" style="background: #7B68EE;color: white" />
</form>
</div>
js code
function uploadanhmota() {
            var file_data = $('#filemota').prop('files')[0];
            var form_data = new FormData();
            form_data.append('file', file_data);
            $.ajax({
                url: 'upload2.php', 
                dataType: 'text',  
                cache: false,
                contentType: false,
                processData: false,
                data: form_data,
                type: 'post',
                success: function (data) {
                alert(data);
                }
            });
    }

作为 php 的代码没有得到我通过 ajax 发送的 1 个列表图像

php code
if (isset($_POST) && !empty($_FILES['myFile'])) {
$tmp = array();
$name =  array();
foreach ($_FILES['myFile']['tmp_name'] as $file1) {
$tmp[] = $file1;
}
foreach ($_FILES['myFile']['name'] as $file2) {
$name[] = $file2;
}
for($i = 0; $i < count($tmp); $i++){
        if(move_uploaded_file($tmp[$i],'./image/' . $name[$i])){
                echo "Tải tập tin thành công";
            }else{
                echo "Tải tập tin thất bại";
            }
        }
   } else {
    die('Lock'); // 
}

【问题讨论】:

  • 我不想使用提交表单加载页面我想使用ajax,我想发送图像文件的数据,然后我将在php中处理它们
  • 在表单中添加 enctype,而不是在根 div 上
  • 我修好了,但还是不行

标签: javascript php html ajax


【解决方案1】:

您发送表单数据的语法错误。 您要发送的任何数据都必须具备 3 样东西

  1. &lt;form&gt; &lt;/form&gt;标签封闭
  2. 有一个动作方法(这里应该指向你的php文件名)
  3. 有 method="post" 或 method="get"

第 4 点不是必需的,因为您正在通过 ajax 处理它

  1. 提交按钮

这应该可以解决您的数据无法发送的问题。

<div class="form-group col-sm-12">
<form action="your_php_filename" method="post" enctype="multipart/form-data">
<input type="file" class="form-control col-sm-9" id="filemota" name="myFile[]" multiple="multiple"/>
<input class="btn col-sm-3" onclick="uploadanhmota()"/>
</form>
</div>

【讨论】:

  • 这应该可以解决您的问题。尝试这样做[链接]w3schools.com/php/php_file_upload.asp
  • 通过提交表单上传图片并加载我已经完成并成功的页面,我想要的是用ajax上传多张图片
猜你喜欢
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多