繁体   English   中英

使用PHP脚本上载图像失败

[英]Uploading Images with PHP Script Failing

我对PHP很新,但是当我使用自定义脚本将图像通过ShareX上传到我的服务器时,我通过多个不同的脚本和服务器遇到了一个反复出现的问题,特别是这个

我已经迁移了服务器(我在共享主机上,现在我正在使用VPS),并且已经改为使用这个脚本,但我仍然遇到问题,我不知道究竟是什么问题。

问题(100%的时间没有发生,但大部分时间都在发生;有时它在重试后有效)是上传超过一定大小的图像,大约250-500KB次或大部分时间失败。 60秒后,我在ShareX上收到502错误(Bad Gateway)。

我查找了类似问题的常见解决方案(PHP中的“大”文件超时),并在我的PHP.ini文件中检查了以下变量。

max_execution_time = 60
max_input_time = 60
memory_limit = 128M
post_max_size = 8M

上传成功后,上传总共需要几秒钟,并返回上传图片的链接,但是当它失败时,它总是60秒,然后是错误。 没有中间立场,它要么立即成功,要么在60秒后超时。

我不确切知道如何找到错误的确切内容(如果有的话)。 当发生这种情况时,ShareX报告(502)错误网关错误,“响应:”只是页面的源代码(如果脚本检测到您没有上传任何内容或脚本,则将其设置为将您重定向到此页面失败),'Stack Trace'如下:

堆栈跟踪:

at System.Net.HttpWebRequest.GetResponse()
   at ShareX.UploadersLib.Uploader.UploadData(Stream dataStream, String url,     String fileName, String fileFormName, Dictionary`2 arguments,     NameValueCollection headers, CookieCollection cookies, ResponseType responseType, HttpMethod method, String requestContentType, String metadata)

编辑:我的服务器落后于cloudflare,我读到cloudflare可能会导致问题。 但是,我已经检查了设置,并且cloudflare上的最大上传大小设置为100MB,暂停它似乎没有帮助。

编辑:我删除了post_max_size的限制,这是8M,似乎已部分解决了这个问题。 我现在可以上传大约3MB的内容,但之后它总是会失败,脚本会显示自定义错误消息。

增加文件POST限制时,您可能需要更改至少2个设置:

upload_max_filesize = 30M

post_max_size = 32M

不要认为它与CloudFlare有任何关系。 如果以上设置不起作用,请查看是否可以检查Apache的错误日志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM