Uploadify FOLDER - PullRequest
       44

Uploadify FOLDER

4 голосов
/ 06 декабря 2011

Я использую Uploadify для загрузки файлов и использую Codeigniter Framework.

Вот мой код Uploadify:

$("#change_profile_icon").uploadify({

                    'uploader'       : '/project/style/scripts/crop/uploadify/uploadify.swf',
                    'script'         : 'http://localhost/project/pages/profile_icon',
                    'cancelImg'      : '/project/style/scripts/crop/uploadify/cancel.png',
                    'buttonText'     :'Upload image',
                    'width'          : '110',
                    'height'         : '30',
                    'queueID'        : 'fileQueue',
                    'auto'           : true,
                    'scriptData'     :{username :"<?php echo $this->session->userdata('username');?>",folder:"honda"},
                    'queueSizeLimit' : 1,
                    'multi'          : false,
                    'fileDesc'       : 'jpg',
                    'fileExt'        : '*.jpg;*.png',
                    'sizeLimit'      : '819200',//max size bytes - 800kb
                    'onComplete'     : function(event,queueID,fileObj,response,data) {
                                            alert("Completed");
                                            var dataresponse = eval('(' + response + ')');
                                            //$('#uploadifyUploader').remove();
                                        var filenametmp = "http://localhost"+(dataresponse.file).substring(0,(dataresponse.file).lastIndexOf("?"));
                                        var current_page = $('#page-list').val();

                                        },

                                        'onSelect' : function (){
                                        var folder =  $('#page-list option:selected').text(); //returns HONDA which is correct
$('#change_profile_icon').uploadifySettings('folder',folder);
}   ,           
                    'onError'        : function(){
                                            alert('error');
                                       }
                });

Вот моя часть PHP [значение скрипта в Uploadify]

function profile_icon()
    {
    if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_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']);

    // if (in_array($fileParts['extension'],$typesArray)) {
        // Uncomment the following line if you want to make the directory if it doesn't exist
        $targetPath = 'uploads/' .$_REQUEST['folder']. '/';
        $targetFile = $targetPath.$_FILES['Filedata']['name'];
        if (!file_exists($targetPath))
        {
         mkdir(str_replace('//','/',$targetPath), 0755, true);
        }
        move_uploaded_file($tempFile,$targetFile);
        echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
    // } else {
    //  echo 'Invalid file type.';
    // }
}

Проблема:

$targetPath = 'uploads/' .$_REQUEST['folder']. '/';
            $targetFile = $targetPath.$_FILES['Filedata']['name'];
            if (!file_exists($targetPath))
            {
             mkdir(str_replace('//','/',$targetPath), 0755, true);
            }

Проверьте приведенные выше коды, взятые из части PHP. Я думаю, что $_REQUEST['folder'] даст имя папки, указанное в сценарии Uploadify. Значение folder это Honda Но это дает что-то другое.

Я загрузил файл, и этот скрипт загрузил его в

C:\wamp\www\project\uploads\project\home\editpage\honda\honda

На сервере Wamp [Я в Localhost]

а как это получается ??это должно быть

 C:\wamp\www\project\uploads\honda

Проверьте ниже ...

  $targetPath = 'uploads/' .$_REQUEST['folder']. '/';
  $targetFile = $targetPath.$_FILES['Filedata']['name'];

targetPath должно быть сейчас uploads/honda/ и targetFile должно быть сейчас uploads/honda/fileName.ext

Я не знаю, что я делаю неправильно и где это ....

Пожалуйста, помогите мне.

Спасибо.

РЕДАКТИРОВАТЬ : Структура URL текущей страницы: http://localhost/Project/home/editpage/honda/ где home - контроллер, а editpage - функция, а honda - аргумент. [Frameworkignigniter Framework]


SOLVED

Я решил проблему, это ошибка в uploadify: переменная папки uploadify не прямолинейна, поэтому перед этим мы должны добавить slash.

, поэтому это будет var folder = "/"+ "FolderName"; Проблема в том, что выне могу вернуть данные на сервер, если вы используете только имя папки.

Ответы [ 3 ]

3 голосов
/ 15 декабря 2011

Я решил проблему, это ошибка в uploadify: переменная папки uploadify не прямолинейна, так что перед этим мы должны добавить косую черту.

, так что это будет var folder = "/"+ «Имя_папки»;Проблема в том, что вы не можете вернуть данные на сервер, если используете только имя папки.

0 голосов
/ 06 декабря 2011

Просто укажите folder, куда вы хотите загрузить в настройках, как

<script type="text/javascript">
$(document).ready(function() {
  $('#file_upload').uploadify({
    'uploader'  : '/uploadify/uploadify.swf',
    'script'    : '/uploadify/uploadify.php',
    'cancelImg' : '/uploadify/cancel.png',
    'folder'    : '/uploads',
    'auto'      : true
  });
});
</script>

Как и в приведенных выше настройках, вы пропустили опцию folder.

0 голосов
/ 06 декабря 2011

Я думаю, вы получите большую помощь, чтобы поместить ваш вывод в файл: :)

$myFile = "[full-folder-path]testFile.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $_FILES['Filedata']['name'] ." | ". print_r( $_REQUEST, true ) ."\n";
fwrite($fh, $stringData);
fclose($fh);

Но я думаю, что если вы измените свою строку $ targetPath на эту

$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

Вспомните, что ваша папка нуждается в чтении / записи прав, это единственное, что я могу увидеть, как она работает от вашего основного сценария до моего сценария.

...