我正在使用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。我不会手动创建这些删除按钮。但是上传新文件时我无法删除文件,而在尝试删除旧文件时我无法删除。
任何帮助都会有所帮助!
答案 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=
。
如果您遇到同样的问题,希望将来节省您的时间。
答案 1 :(得分:1)
我对此插件遇到了同样的问题,需要将近一个月的时间才能找到解决方案,而且非常简单。
更改UploadHandler.php
文件行:
'user_dirs' => false
'delete_type' => 'DELETE'
以下内容:
'user_dirs' => true
'delete_type' => 'POST'