首先让我告诉你,我已经找到了一些答案,虽然它帮了我一点,但我的主要问题仍然没有得到解决。
我使用了文件上传器(版本9.8.0)@ http://blueimp.github.io/jQuery-File-Upload/
(第1个问题)
在我开始上传之前,一切似乎都运行良好。完成上传后,它会为每个图像显示以下错误(而不是“上传成功”消息)。
在Google Chrome上,它说: “SyntaxError:意外的令牌<”
关于Mozilla FireF。它说: “SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符”
我搜索了一些解决方案,但我无法弄清楚如何应用这些解决方案。顺便说一句,它添加了图像,尽管有错误。
如果查看浏览器中的网络选项卡,您调用的方法是抛出一个带有html的错误页面(以<开头,并且无法在JSON中解析)。
例如在Google Chrome中:
- 打开调试器:F12
- 转到网络选项卡
- 上传
- 您应该会看到在“网络”选项卡中发送的请求
- 单击该错误请求
- 这将打开一个新窗口,其中包含服务器响应的选项卡。这种反应很可能是某种异常消息。
我在ASP.Net MVC上有一个类似的问题,当一个参数被发送为null并且它在控制器上不可为空时,它有一个不同的上传器。
SyntaxError:JSON.parse:JSON数据的第1行第1列的意外字符
看看这个SO,看看你的问题是否相关。
基本上,它可能意味着返回的成功消息没有正确的HTML标记,因此浏览器无法显示它们。
你最有可能尝试 JSON.parse
服务器提供了错误消息或其他非JSON响应,这可能是HTML,给定它被阻塞的第一个字符。
我打开控制台,获取页面以产生错误,在开发工具的网络选项卡中找到请求,并检查上传请求的响应选项卡以查看实际返回的内容。
希望看到响应会引导您找到解决方案(如修复错误消息)或更具体的问题。
我通过编辑url解决了这个问题 main.js 文件 index.php
最后,像这样:
// Initialize the jQuery File Upload widget:
$('#fileupload').fileupload({
// Uncomment the following to send cross-domain cookies:
//xhrFields: {withCredentials: true},
url: 'imagegallery/server/php/index.php'
});
这发生在我身上一次。也许这是文件夹权限。
我设置了server / php / files读写权限,并且可以正常工作。
这是因为post_max_size和upload_max_filesize太小,并且因为它使用blob来发送文件数据,所以它会生成此错误。我已经在我的php.ini中增加了它们,现在就像一个魅力
这也发生在我身上。我在Linux服务器上使用PHP。我发现在4或5个地方的代码中实际上有反斜杠“\”,它们导致了错误。做这个:
- 在编辑器中打开/server/php/UploadHandler.php的副本
- 搜索反斜杠:
- 注意反斜杠的每个位置。
- 如果它在单词“new”之后并且在调用处理程序之前就可以
删除反斜杠。
检查308,790,814,816,819,822,825,828,831,836,842,895,915,973,981和1058行。所有对Imagick()的调用;似乎在他们面前有一个。
我删除了所有这些反斜杠,不需要关闭错误报告。
例:
查找代码:
$file = new \stdClass();
用。。。来代替:
$file = new stdClass();