2016-03-23 71 views
1

此代码摘自AJAX Image upload using PHP我已将代码复制到这些文件中:index.html,style.css,script.js,ajax_php_file.php和下载的NoImage.jpg。然后,我从我的电脑中选择了该图像,并且客户端上的照片已更改为所选图像。然后我点击上传,没有文件上传到php脚本被调用的文件夹中。经过Firefox 32 Firebug控制台测试,没有错误报告。我也试过这与Jquery 2.2.2错误告诉我,e.preventDefault();被删除。因此你能告诉我代码有什么问题吗?它不会在Opera中上传。我发现在脚本的原始页面上有更多的ppl问这个问题,但答案没有回应。为什么jQuery图像上传不上传图像

我试过这个代码$("#uploadimage").submit();后加reader.readAsDataURL(this.files[0]);,这也没有帮助。

然而,活生生的例子在这里: http://kod.djpw.cz/vpvb

然而,一个从控制台代码。如果我编辑此功能:

function imageIsLoaded(e) { 
    $("#file").css("color","green"); 
    console.log($("#file")); 
    $('#image_preview').css("display", "block"); 
    console.log($('#image_preview')); 
    $('#previewing').attr('src', e.target.result); 
    console.log($('#previewing')); 
    $('#previewing').attr('width', '250px'); 
    $('#previewing').attr('height', '230px'); 
    }; 

我看到这一点:

Object { 0: <input#file>, length: 1, context: HTMLDocument → index.html, selector: "#file" } script.js:45 
Object { 0: <div#image_preview>, length: 1, context: HTMLDocument → index.html, selector: "#image_preview" } script.js:47 
Object { 0: <img#previewing>, length: 1, context: HTMLDocument → index.html, selector: "#previewing" } script.js:49 

回答

0

我被解决了JS所占据,并没有意识到上传必须由ajax_php_file.php固定在服务器端。当我在代码挖我看行

if (file_exists("upload/" . $_FILES["file"]["name"])) { 
    echo $_FILES["file"]["name"] . " <span id='invalid'><b>already exists.</b></span> "; 

所以这意味着我需要在同一文件夹作为PHP脚本的位置创建“上传”文件夹。这是一个简单的修复,但它不在原始代码描述中。