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

Kob*_*usM 6 upload uploadify

我找到了一些与我有同样问题的帖子,但是,没有解决方案.我不是100%确定如何做到这一点,但希望你能提供帮助.

我正在尝试使用Uploadify上传文件,但会发生以下情况:

  1. 浏览文件成功(因此我的'脚本'和'上传'属性是正确的)
  2. 进度条说"100%"并完成.
  3. onComplete fires说上传成功(根据提醒的路径,'folder'属性是正确的.)
  4. 如果我在任何输出之前死了我的脚本,那么#3步骤就不会发生 - 因此它会到达指定的'script'.输出后,脚本不会死.
  5. 文件不是在FILESYSTEM中找到的

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

这是我的代码:

<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);
    }

?>
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢!

Kobus

小智 0

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

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