проблема с загрузкой php файлов (файлов изображений и flash) - PullRequest
1 голос
/ 13 декабря 2011

Поскольку я работаю над задачей выгрузки файлов, я использовал jQuery и php для выгрузки файлов на сервер, чтобы уменьшить количество http-запросов.Из панели управления администратора все нормально, кроме загрузки файлов.Загрузка файлов работает правильно в localhost, но когда я работаю над этим в среде живого сервера, файлы не загружаются.Я изменил права доступа к файлу на 0777.

Странные разрешения автоматически меняются на 755 после того, как вы установите его на 777 или после загрузки игры.

На самом деле процесс таков:хранение обоих файлов, т. е. изображения и файла .swf в одном каталоге. Каталог создается с идентификатором таблицы базы данных. Файл игры и изображение игры не загружаются в соответствующий каталог

Например, играИдентификатор 342 создается с именем каталога с именем 342, но изображение и SWF-файл не загружаются в этот каталог.Для каждой игры создается соответствующий каталог с идентификатором игры.

Мой код: имя файла: 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 голосов
/ 13 декабря 2011

Ваш вызов функции mkdir () устанавливает права доступа 0755:

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

Попробуйте установить значение 777:

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