只有1个单独的文件通过ajax上传到php上传脚本中

时间:2016-09-08 16:42:42

标签: javascript php jquery ajax

我真的需要帮助,因为这一直给我带来了问题。我只需要从4个输入字段上传图像。但只有上一个输入字段的图像才会上传CODE(上传图片的功能):

function loadImage($file){

        $valid_types = array('jpg','jpeg','png');//allowed img extensions

        $ext = strtolower(end(explode('.', $file['name'])));

        $size = $file['size'];          

        if(in_array($ext, $valid_types)){

                if($size < (2097152)){

                        $image_path = substr(md5(time()), 0, 10).'.'.$ext;

                        if(move_uploaded_file($file['tmp_name'] , "../props/".$image_path)){
                                return $image_path;
                        }else{
                            echo "error";
                        }

                }else{

                    echo "Image  must be less than 2mb";
                }

        }else{
            //echo "image has an invalid file format";
        }

}

调用上传功能的代码

$img1 = isset($_FILES['img1'])  ? loadImage($_FILES['img1']) : NULL ;
$img2 = isset($_FILES['img2'])  ? loadImage($_FILES['img2']) : NULL ;
$img3 = isset($_FILES['img3'])  ? loadImage($_FILES['img3']) : NULL ;
$img4 = isset($_FILES['img4'])  ? loadImage($_FILES['img4']) : NULL ;

jquery ajax代码:

        formdata.append('img1', img1);
        formdata.append('img2', img2);
        formdata.append('img3', img3);
        formdata.append('img4', img4);

$.ajax({
            url     : 'core/upload.php',
            type    : 'POST',
            data    : formdata,
            contentType : false,
            processData : false,
            success : function (ep){
                alert(ep);

                //$('#say').html(ep);
            }
        });

1 个答案:

答案 0 :(得分:0)

它现在可以正常工作,而不仅仅是通过jquery,而是通过直接用php正常处理表单。这就是我的循环看起来像

for($i=0; $i<count($_FILES['img']['name']); $i++){
        $target_path = "../props/";

        $ext =  strtolower(end(explode('.', $_FILES['img']['name'][$i])));

        $target_path = $target_path . md5(uniqid()) . "." . $ext; 

        if(move_uploaded_file($_FILES['img']['tmp_name'][$i], $target_path)) {
            echo "The file has been uploaded successfully <br />";
        } else{
            echo "There was an error uploading the file, please try again! <br />";
        }
    }

但任何人都可以帮忙解决如何通过jquery以及其他文本输入和复选框字段发送它?问题来自于我如何将它从jquery发送到php。