[英]jQuery-File-Upload Plugin - 501 (Not Implemented)
这个问题是关于: https : //github.com/blueimp/jQuery-File-Upload
这个问题很具体。 我没有开发代码,所以我不知道什么时候哪里出错了。
我复制到整个仓库到我的Windows虚拟主机上运行PHP 5.3以下的设置 ,但是,使用Firefox和Chrome访问演示页,我可以上传,但不能删除。 Windows服务器已旧 ,仍在运行IIS6 。
控制台已记录:
Firefox:
no element found
Chrome:(1st click)
Failed to load resource: the server responded with a status of 501 (Not Implemented) :http://webhost/folder/jquery-file-upload/server/php/?file=xxx.jpg
Chrome:(2nd click)
DELETE http://webhost/folder/jquery-file-upload/server/php/?file=xxx.jpg 501 (Not Implemented)
jquery.min.js:4
send jquery.min.js:4
n.extend.ajax jquery.min.js:4
$.widget.options.destroy jquery.fileupload-ui.js:377
$.Widget._trigger jquery.ui.widget.js:489
$.widget._deleteHandler jquery.fileupload-ui.js:537
(anonymous function) jquery.ui.widget.js:105
handlerProxy jquery.ui.widget.js:406
n.event.dispatch jquery.min.js:3
r.handle jquery.min.js:3
并以此链接到php:1
:
{"file":{"name":"xxx.png","size":14339,"url":"http:\/\/webhost\/folder\/jquery-file-upload\/server\/php\/files\/xxx.png","thumbnailUrl":"http:\/\/www.newman.edu.hk\/appreciate\/jquery-file-upload\/server\/php\/files\/thumbnail\/xxx.png","deleteUrl":"http:\/\/webhost\/folder\/jquery-file-upload\/server\/php\/?file=xxx.png","deleteType":"DELETE"}}
我试图检查UploadHandler.php
但整个文件对我来说似乎是模糊的UploadHandler.php
无论出于何种原因,在此报告。 我用最新的库再次尝试了,并且有效。 抱歉,如果您目前感到沮丧,我无法提供更多详细信息或为您提供帮助,因为我从未记录过这些信息。 :(
无论如何,这就是我解决问题的方式。
我也很遗憾地说其他答案对我不起作用,并且我不记得要发表评论,因为我无法在家中访问服务器,并且在摆弄它后忘记了服务器。 请原谅我:P
PS我也切换到Dropzone.js,因为jQuery File Upload太难使用了。 我个人认为Dropzone.js允许更多自由,因为它不需要任何依赖关系。
以下是他们以Dropzone.js为主题的外观,使其看起来像jQuery File Upload: http : //www.dropzonejs.com/bootstrap.html
我刚刚在这个问题上失去了几个小时...也可以上传而不是删除...我创建了一个自定义ajax函数来手动删除文件...并且一旦我尝试删除501错误...我发现了在UploadHandler.php中
// Set the following option to 'POST', if your server does not support
'delete_type' => 'DELETE',
我的VPS服务器不允许DELETE请求...将这一行更改为'POST'后,它不再出现501错误...
我已经通过放置自己的删除按钮代码和Ajax脚本解决了该问题。
HTML
替换为:
<button type="button" class="btn btn-danger delete">
<i class="glyphicon glyphicon-trash"></i>
<span>Delete</span>
</button>
<a href="javascript:void(0)" class="delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
<i class="fa fa-trash"></i>
</a>
有了这个:
<button type="button" class="btn btn-danger delete_us">
<span>Delete</span>
</button>
<a href="javascript:void(0)" class="delete_me" data-name="{%=file.name%}" data-url="{%=file.url%}" data-thumb="{%=file.thumbnailUrl%}">
<i class="fa fa-trash"></i>
</a>
jQuery的
//Delete images on select all button
jQuery(document).on('click', '.delete_us', function() {
var total = jQuery('[name="delete"]:checked').each(function() {
jQuery(this).parent().find('.delete_me').trigger('click');
});
});
//Delete single image
jQuery(document).on('click', '.delete_me', function() {
jQuery(this).parents('.template-download').addClass('active');
var data_thumb = jQuery(this).data('thumb');
data_thumb = data_thumb.split('thumbnail');
data_thumb = data_thumb[0]+'thumbnail/';
var data_name = jQuery(this).data('name');
var data = data_thumb+data_name;
jQuery.ajax({
data : { dataThumb: data },
url : "<?php echo JURI::root().'ajax.php' ?>",
type : 'post',
success : function(data) {
jQuery('.template-download.active').fadeOut(500);
}
});
});
AJAX文件
<?php
//Ajax file
$data = $_POST;
if($data['dataThumb']) {
deleteMe($data['dataThumb']);
}
function deleteMe($data) {
$data = str_replace(JURI::root(), JPATH_BASE.'/', $data);
$thumb = str_replace('thumbnail/', '',$data);
unlink($data);
unlink($thumb);
}
?>
注意:请用适当的网址替换代码中的Joomla标准网址。
jQuery-File-Upload Plugin的HTTP'DELETE'请求在我的项目中也不起作用,因此我创建了自定义代码来删除图像。 我希望这可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.