2017-01-07 8 views
1

Я использую плагин JQuery-File-Upload. При загрузке плагина я добавляю уже предустановленные файлы с помощью этого кода:jQuery-File-upload: 405 ошибка «метод не разрешен» на DELETE

var files = [ 
      { 
       "name": ""+uploadFileName+"", 
       // "size":775702, 
       "type": "audio/ac3", 
       "url": ""+uploadFile+"", 
       "deleteUrl": ""+uploadFile+"", 
       "deleteType": "DELETE" 
      } 
     ]; 
     var $form = $('#fileupload');   

     // Init fileuploader if not initialized 
     // $form.fileupload(); 
     $form.fileupload('option', 'done').call($form, $.Event('done'), {result: {files: files}}); 

Все работает отлично - плагин добавить файл в fileslist, но в этом случае (с ручным поджать) Кнопка не работает DELETE и не удалите файл.

В консоли я вижу ошибку: DELETE (*url_link*) 405 (Method Not Allowed)".

Кто-нибудь знает, как исправить эту проблему и что это за проблема?

P.S. Я не создаю вручную эти кнопки удаления в обоих направлениях. Но при загрузке нового файла я не могу удалить файл, и я не могу при попытке удалить старый.

Любая помощь будет полезна!

+0

Вам необходимо указать код. –

ответ

1

Я нашел ответ.

В документации API нет никакой информации о параметре deleteUrl, поэтому я думал, что url и deleteUrl - это те же ссылки.

Чтобы исправить 405 error и сделать кнопку DELETE работоспособной, вам необходимо настроить ее правильно (в случае ручной предварительной загрузки). PHP код ниже, но вы можете понять весь процесс и осуществить его на другие языки:

$settings_location_folder = "materials/"; 
$actual_location_folder = "materials/files"; //plugin requires such structure 
$url_link_from_db = "filename.mp3"; 

$url = $actual_location_folder."".$url_link_from_db; //url = "materials/files/filename.mp3"; 

$deleteUrl = $settings_location_folder."index.php?file=".$url_link_from_db; //deleteUrl = "materials/index.php?file=filename.mp3"; 

Так что если у вас есть 405 error с нажатием на кнопку Удалить - проверить deleteUrl параметр и добавить index.php?file=, прежде чем ссылку на файл в папке где находится текущий файл.

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