2012-02-22 1 views
13

Я пытаюсь работать с плагином jimp-файла-upload blueimp. Кажется, что это хороший загрузчик, но документация не помогает.jquery-file-upload plugin: Как изменить путь загрузки?

Когда я работаю с загружаемым демо-скриптом, все в порядке. Но, когда я хочу изменить путь загрузки, это не сработает.

Я пытался изменить, в index.php, путь действия, например:

form id="fileupload" action="../uploads/" method="POST" enctype="multipart/form-data" 

и добавлены папки «файлы» и «эскизы» в моей папке «Добавленные».

вызов GET нормально, как я могу видеть в Firebug:

GET http://localhost/alliance_pretests/uploads/ 200 OK -8ms 

Но когда я запускаю выгружать, СТОЛБ отвечает мне (еще в Firebug):

POST http://localhost/alliance_pretests/uploads/ 404 Not Found 44ms 

I ничего не изменил. Что я забыл?

Почему GET-вызов видит папку, но не вызов POST?

Заранее спасибо. С уважением.

+0

как вы используете этот плагин? вы реализовали серверную версию или используете версию Node.js? вам нужно обновить бэкэнд, чтобы указать каталог загрузки – ManseUK

ответ

18

Действие формы не является папкой, в которой должна быть папка для загрузки. Действие формы - это сценарий, по которому данные отправляются после отправки. (подробнее см. здесь о действиях формы http://www.w3schools.com/tags/att_form_action.asp)

Попробуйте найти папку назначения для загрузки или заглянуть внутрь скрипта.

Update: после загрузки библиотеки

Вы должны смотреть на сервере/PHP/upload.class.php и у вас есть какие-то переменные с адресом папки загрузки:

'script_url' => $this->getFullUrl().'/', 
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/', 
'upload_url' => $this->getFullUrl().'/files/', 

Вы должны заменить /files/ своей собственной папкой для загрузки.

+0

Я понял ваше объяснение и изменил свой код. Это работает отлично. Большое спасибо. Но как объявить папку на один уровень выше, например «../uploads»? Я пробовал, но он не работает (ошибка JSON). – mlh

+1

Как вы его модифицировали? Это должно быть как ''upload_url' => '../ uploads/'' – Mike

+2

Это не работает, потому что я не удалял $ this:' upload_url '=> $ this ->' ../ uploads/' Теперь все в порядке. Спасибо большое! – mlh

21

Хотя ответ @mugur поставляется правильно, глядя на класс PHP поставляется с библиотекой первый параметр в методе конструкт «варианты» и объявляя ассоциативный массив следующим образом:

$options = array('upload_dir'=>'upload/directory/of/your/choice', 'upload_url'=>'upload/directory/of/your/choice'); 

и передачи его в качестве первого параметра при создании экземпляра класса:

$upload_handler = new UploadHandler($options); 

позволит вам изменить каталог загрузки каждый раз, когда вы используете класс, а не изменяя исходный код.

+0

Но где вы добавляете этот код? Спасибо –

+2

Вы должны добавить эти параметры в файл, в котором вы создаете экземпляр класса, если вы используете пример, то это [index.php] (https://github.com/blueimp/jQuery-File-Upload/blob /master/server/php/index.php). Было бы выглядеть примерно так: 'error_reporting (E_ALL | E_STRICT),' ' требуют ('UploadHandler.php');' ' $ Варианты = Array ('upload_dir' => 'Загрузка/каталог/of/your/choice ', ' '' upload_url '=>' upload/directory/of/your/choice '); ' ' $ upload_handler = new UploadHandler ($ options); ' –

+0

Какое значение должно быть дать 'upload_url', если я хочу загрузить мои файлы за пределы' www'? – Adam

Смежные вопросы