jQuery-File-upload:在DELETE上出现405错误“不允许的方法”

时间:2017-01-07 17:56:59

标签: jquery jquery-file-upload http-status-code-405

我正在使用Jquery-File-Upload插件。 加载插件时,我使用以下代码添加已预加载的文件:

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}});

一切正常 - 插件添加文件到文件列表但在这种情况下(手动预加载)DELETE按钮不起作用,不会删除文件。

在控制台中,我看到错误:DELETE (*url_link*) 405 (Method Not Allowed)"

任何人都知道如何解决这个问题以及它是什么类型的问题?

P.S。我不会手动创建这些删除按钮。但是上传新文件时我无法删除文件,而在尝试删除旧文件时​​我无法删除。

任何帮助都会有所帮助!

2 个答案:

答案 0 :(得分:1)

我找到了答案。

在API文档中,没有关于deleteUrl参数的任何信息,因此我认为urldeleteUrl是相同的链接。

要修复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=

如果您遇到同样的问题,希望将来节省您的时间。

答案 1 :(得分:1)

我对此插件遇到了同样的问题,需要将近一个月的时间才能找到解决方案,而且非常简单。
更改UploadHandler.php文件行:

'user_dirs' => false   
'delete_type' => 'DELETE'

以下内容:

'user_dirs' => true  
'delete_type' => 'POST'