php文件上传(图像和flash文件)问题

时间:2011-12-13 07:02:35

标签: php jquery file-upload uploadify

当我正在处理文件上传任务时,我使用jQuery和php将文件上传到服务器以减少http请求的数量。在管理控制面板上,除文件上传外,一切正常。文件上传在localhost中正常工作,但是当我在实时服务器环境中处理此文件时,文件没有上传。我已将文件权限更改为0777.

在您将权限设置为777或上传游戏后,权限会自动更改为755。

实际上这个过程是: - 我将文件,即image和.swf文件存储在一个目录中 - 使用数据库表id创建目录 - 游戏文件和游戏图像没有上传到相应的目录

例如,使用名为342的目录名创建游戏ID 342,但不会在该目录中上传image和swf文件。对于每个游戏,使用游戏ID创建相应的目录。

我的代码: 文件名:uploadify.php

if (!empty($_FILES)) {
        $tempFile = $_FILES['Filedata']['tmp_name'];
        $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
        $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

        $fileTypes  = str_replace('*.','',$_REQUEST['fileext']);
        $fileTypes  = str_replace(';','|',$fileTypes);
        $typesArray = split('\|',$fileTypes);
        $fileParts  = pathinfo($_FILES['Filedata']['name']);

            mkdir(str_replace('//','/',$targetPath), 0755, true);
            move_uploaded_file($tempFile,$targetFile);
            chmod($targetFile,0777);
            echo "1";

    }

jQuery文件:js.js

$('#fileinput').uploadify({
        'uploader'  : 'uploader/uploadify.swf',
        'script'    : 'uploader/uploadify.php',
        'cancelImg' : 'uploader/cancel.png',
        'auto'      : true,
        'folder'    : "../../../games/"+$("#newgameid").val()+"/",
        'onComplete' : function(event,queueID,fileObj){
            $("#flashfileupload").html("file<strong>: "+ fileObj.name + " ("+ Math.round(fileObj.size/1000) + " kb)</strong> has been uploaded successfully!");    
            $("#size").val(Math.round(fileObj.size/1000));
            $("#filename").val(fileObj.name);
            $("#submitgame").removeAttr("disabled");
        },
        'onOpen' : function(event,queueID,fileObj){
            if(fileObj.name.indexOf(".swf")==-1){
                alert('Error Input - Flash game must SWF File!')
                $('#fileinput').uploadifyClearQueue();
            }
        }


    });


    $('#thumnail').uploadify({
        'uploader'  : 'uploader/uploadify.swf',
        'script'    : 'uploader/uploadify.php',
        'cancelImg' : 'uploader/cancel.png',
        'auto'      : true,
        'folder'    : "../../../games/"+$("#newgameid").val()+"/",
        'onComplete' : function(event,queueID,fileObj){
            $("#thumnailfileupload").html("file<strong>: "+ fileObj.name + " ("+ Math.round(fileObj.size/1000) + " kb)</strong> has been uploaded successfully!");
            $("#thumbnail").val(fileObj.name);
        }

    });

请在这方面帮助我。感谢您抽出时间阅读此问题。任何建议都被接受。

此致 phphunger。

1 个答案:

答案 0 :(得分:0)

您的mkdir()函数调用正在将权限设置为0755:

mkdir(str_replace('//','/',$targetPath), 0755, true);

尝试将其设置为777:

mkdir(str_replace('//','/',$targetPath), 0777, true);