Uploadify 不上传文件,但表示成功

Posted

技术标签:

【中文标题】Uploadify 不上传文件,但表示成功【英文标题】:Uploadify not uploading file, but indicates success 【发布时间】:2011-07-18 05:00:03 【问题描述】:

我发现了一些与我有相同问题的帖子,但是没有提出解决方案。我不是 100% 确定该怎么做,但希望您能提供帮助。

我正在尝试使用 Uploadify 上传文件,但出现以下情况:

    浏览文件成功(因此我的“脚本”和“上传”属性是正确的) 进度条显示“100%”并完成。 onComplete 触发说上传成功(根据警告的路径,“文件夹”属性是正确的。) 如果我在任何输出之前终止我的脚本,则不会发生 #3 步骤 - 因此它会到达指定的“脚本”。输出后,脚本不会死。 文件系统中未找到文件

不确定这怎么可能——据我所知,一切都是正确的。

这是我的代码:

<script type="text/javascript"> 
    $(document).ready(function() 
        $("#addimage").validationEngine();
        $('#imagefile').uploadify(
            'uploader': "/js/uploadify/uploadify.swf",
            'fileExt': "*.jpg;*.jpeg;*.png;*.gif",
            'buttonText': "Browse...",
            'script': "/js/uploadify/uploadify.php",
            'cancelImg': "/js/uploadify/cancel.png",
            'folder': "/uploads",
            'fileDesc': 'Only *.jpg, *.jpeg, *.png, *.gif are allowed',
            'auto': true,
            'onComplete': function(event, ID, fileObj, response, data) 
                $('#name').val('Please edit this text to add a description...');
                alert('Uploaded ' + fileObj.name + ' to ' + fileObj.filePath + '.');
            
        );        
    );
</script>

<input type="file" id="imagefile" name="imagefile" />

<?php

    if (!empty($_FILES)) 
        $tempFile = $_FILES['Filedata']['tmp_name'];
        $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
        $targetFile =  str_replace('//', '/', $targetPath) . 'image_' . date('YmdHis') . '_' . $_FILES['Filedata']['name'];
        move_uploaded_file($tempFile,$targetFile);
        echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
    

?>

PHP 脚本的唯一更改是我更改的 targetFile 的名称,以确保某种唯一的文件名(虽然不是万无一失的),但脚本与已发布的相同(为简洁起见,此处删除了 cmets)。

谁能告诉我为什么 Uploadify 表明文件上传成功,但上传目录中不存在文件?我使用的是 Windows,PHP5.3,并且上传文件夹是可写的(我可以在没有 Uploadify 的情况下上传文件,但不能使用它)

提前致谢!

科布斯

【问题讨论】:

【参考方案1】:

我在 Linux 机器上遇到过类似的问题。原来我服务器上的 PHP 配置是 cuplrit。 PHP 在安全模式下运行。由于我通过 FTP 上传了 Uploadify 脚本,因此脚本文件与我的 FTP 用户详细信息一起存储在文件系统中。由于 PHP 的临时文件夹归服务器根目录所有,所以我的 UID 不匹配,即临时上传文件归根目录所有,而试图移动它的上传脚本归 FTP 用户所有。把它弄坏了。

为了解决这个问题,我将uploadify php 脚本的所有权更改为root 并从那里开始工作。

【讨论】:

以上是关于Uploadify 不上传文件,但表示成功的主要内容,如果未能解决你的问题,请参考以下文章

解决jQuery uploadify在非IE核心浏览器下无法上传

文件上传利器JQuery上传插件Uploadify

记录-Jquery uploadify文件上传实例

uploadify前台上传文件,java后台处理的例子

jQuery.uploadify文件上传组件实例讲解

Jquery上传插件Uploadify无刷新上传文件