jQuery-File-upload:删除时出现 405 错误“方法不允许”

Posted

技术标签:

【中文标题】jQuery-File-upload:删除时出现 405 错误“方法不允许”【英文标题】:jQuery-File-upload: 405 error "method not allowed" on DELETE 【发布时间】:2017-05-22 08:00:26 【问题描述】:

我正在使用 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)"

有谁知道如何解决这个问题,这是什么问题?

附:我不会以两种方式手动创建这些删除按钮。但是上传新文件时我无法删除文件,尝试删除旧文件时​​也无法删除。

任何帮助都会有所帮助!

【问题讨论】:

你需要包含一些代码。 【参考方案1】:

这个插件我也遇到了同样的问题,花了将近一个月的时间才找到解决办法,而且很简单。 更改UploadHandler.php 文件行:

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

到以下:

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

【讨论】:

【参考方案2】:

我找到了答案。

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

要修复405 error 并使删除按钮可用,您需要正确配置它(在手动预加载的情况下)。 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=

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

【讨论】:

以上是关于jQuery-File-upload:删除时出现 405 错误“方法不允许”的主要内容,如果未能解决你的问题,请参考以下文章

PHP:jQuery-File-Upload任意上传/RCE/越权删除文件漏洞分析

删除时出现分段错误

使用 NSFetchedResultsController 时出现奇怪的删除行为

删除最后一个 UICollectionViewCell 时出现 NSRangeException

获取'无效更新:尝试从 UICollectionView 删除单元格时出现异常

尝试删除文件时出现 AccessControlException