Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将新文件名传递回jquery_Javascript_Php_Jquery - Fatal编程技术网

Javascript 将新文件名传递回jquery

Javascript 将新文件名传递回jquery,javascript,php,jquery,Javascript,Php,Jquery,我正在使用一些jquery来帮助将文件上载到php脚本。一切正常,文件确实上传了。但是在上传的过程中,我使用了一个新的唯一文件名来调整文件大小以满足我们的需要。我希望将新的唯一文件名传递回jquery,并将其显示在页面上。现在,它只显示原始图像(未调整大小) 以下是jquery代码: $(function(){ var btnUpload=$('#upload'); var status=$('#status'); new AjaxUpload(btnUpload

我正在使用一些jquery来帮助将文件上载到php脚本。一切正常,文件确实上传了。但是在上传的过程中,我使用了一个新的唯一文件名来调整文件大小以满足我们的需要。我希望将新的唯一文件名传递回jquery,并将其显示在页面上。现在,它只显示原始图像(未调整大小)

以下是jquery代码:

    $(function(){
    var btnUpload=$('#upload');
    var status=$('#status');
    new AjaxUpload(btnUpload, {
        action: 'upload-file.php',
        name: 'uploadfile',
        onSubmit: function(file, ext){
             if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
                // extension is not allowed 
                status.text('Only JPG, PNG or GIF files are allowed');
                return false;
            }
            status.text('Uploading...');
        },
        onComplete: function(file, response){
            //On completion clear the status
            status.text('');
            //Add uploaded file to list
            if(response==="success"){
                $('<li></li>').appendTo('#files').html('<img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('success');
            } else{
                $('<li></li>').appendTo('#files').text(file).addClass('error');
            }
        }
    });

});
有没有想过如何重新获得新的唯一文件名,比如:1397413326.jpg


谢谢您

将文件名返回,而不是“success”一词。

我可以这样做,但我如何才能使jquery捕获名称并显示新图像?一种解决方案是返回空字符串以显示错误并更改测试:if(response==“success”){另一个解决方案是返回一个带有结构化数据的json对象,因此您在响应对象上有不同的属性。这让我想到了反转检查过程,确保名称不为空,并将文件更改为响应-并且可以工作。谢谢!
                $uploaddir = 'uploads'; 
            $file = $uploaddir . basename($_FILES['uploadfile']['name']); 

            if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 

                    $path = realpath(dirname(__FILE__));
                    include $path . '/uploads/phmagick.php'; 


                    $temp_file = explode(".", $_FILES['uploadfile']['name']);
                    $time = time();

                    $new_file = $time . '.' . $temp_file[1];



                    $p = new phmagick($path . '/uploads/' . $_FILES['uploadfile']['name'], $path . '/uploads/' . $new_file); 

                    $p->convert();


                    $phMagick = new phMagick($path . '/uploads/' . $new_file, $path . '/uploads/' . $new_file); 
                    $phMagick->debug=true; 
                    $phMagick->resize(414,414,true); 


              echo "success"; 
            } else {
                echo "error";
            }