首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用php验证多张图片上传

问用php验证多张图片上传
EN

Stack Overflow用户
提问于 2021-03-13 11:28:32
回答 1查看 39关注 0票数 1

我根据这篇文章的https://stackoverflow.com/a/30074716/14787718修改了我的上传代码(它的工作代码)

但是我的代码不能工作,请帮助。

我的完整代码在这里:https://sandbox.onlinephpfunctions.com/code/c62b6bdf6fadd5aff63b2e7e65e75c1075d1dbb0

代码语言:javascript
复制
<?php
if (isset($_POST['upload']) && $_FILES['image']['error']==0) {
$j = 0; //Variable for indexing uploaded image 

for ($i = 0; $i < count($_FILES['image']['name']); $i++) {//loop to get individual element from the array

    $allow_ext = array('png','jpg','gif','jpeg','bmp','tif');
    $allow_type = array('image/png','image/gif','image/jpeg','image/bmp','image/tiff');

    $image_name = $_FILES['image']['name'][$i];
    $image_type = getimagesize($_FILES['image']['tmp_name'][$i]);
    $image_name = explode('.',$image_name);
    $ext = end($image_name);
    $j = $j + 1;//increment the number of uploaded images according to the files in array       

    if(in_array($ext, $allow_ext) && in_array($image_type['mime'], $allow_type)){
        list($width, $height, $mime) = getimagesize($_FILES['image']['tmp_name'][$i]);
        if ($width>0 && $height>0) {
            $upload = move_uploaded_file($_FILES['image']['tmp_name'][$i], "uploads/".$_FILES['image']['name'][$i]);
            if ($upload) {
                echo '<p>File Uploaded: <a href="uploads/'.$_FILES['image']['name'][$i].'">View Image</a></p>';
            }
        } else {
        echo 'Error: Only image is allowed!';
        }
    } else {
        echo 'Error: Invalid File Type!';
    }
 }
}
?>

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-13 15:37:52

首先移动Jquery调用,将其放在bootstrap之前:

代码语言:javascript
复制
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.0/js/bootstrap.min.js'></script>

在第一个测试中: if (isset($_POST‘’upload‘)&$_FILES’‘image’==0)。$_FILES['image']['error']是一个数组。

删除此测试以仅保留if ( isset($_POST['upload']) )

在您的for步骤中添加此测试:

代码语言:javascript
复制
for ($i = 0; $i < count($_FILES['image']['name']); $i++) {//loop to get individual element from the array

        if ($_FILES['image']['error'][$i]==0) {

经过测试,它工作正常!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66609840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档