应该为UPLOAD_ERR_PARTIAL使用哪个HTTP状态代码?

时间:2013-08-14 13:06:24

标签: php rest http-status-codes

我正在开发 REST API ,我有一些文件上传

当文件仅部分上传时,PHP可能会生成UPLOAD_ERR_PARTIAL错误,而且我不确定在这种情况下应该使用哪个HTTP status code

如果用户取消上传通常会发生这种情况(请参阅Why might a file only be partially uploadedfile upload errors on php.net

  

当在文件数据之后找不到mime边界时,给出UPLOAD_ERR_PARTIAL。可能的原因是用户取消了上传(按ESC等)。

7 个答案:

答案 0 :(得分:9)

如果用户的上传失败是因为他们上传的内容有问题,请说:400 Bad Request

答案 1 :(得分:5)

对于这种情况,您应该使用409状态代码。

根据http://www.ietf.org/rfc/rfc2616.txt

  

由于与当前的冲突,请求无法完成   资源的状态。此代码仅在以下情况下允许   预计用户可能能够解决冲突   并重新提交请求。响应机构应该包含足够的内容   用户识别冲突根源的信息   理想情况下,响应实体将包含足够的信息   用户或用户代理来解决问题;但是,那可能不是   可能而且不是必需的。

答案 2 :(得分:4)

您不必发送任何状态代码,因为客户端已经断开连接。

答案 3 :(得分:2)

我会选择422(由于语义错误而无法遵循请求)或449(执行操作后应重试请求)。

看看httpstatuses.com

答案 4 :(得分:2)

  

当在文件数据之后找不到mime边界时,给出 UPLOAD_ERR_PARTIAL。

411长度

请求未指定其内容的长度,这是所请求资源

所需的

答案 5 :(得分:1)

我认为标题应该基于错误上下文:

如果文件上传不是允许的类型:

  • HTTP_415 ='不支持的媒体类型'

如果文件上传得太大:

  • HTTP_413 ='请求实体太大'

如果服务器出现问题/上传:

  • HTTP_500 ='内部服务器错误'

如果上传超时:

  • HTTP_504 ='网关超时'

但总的来说,我会说 500 非常标准。

答案 6 :(得分:0)

我会用

408 请求超时。 因为它表示请求仅部分发送(在这种情况下不支持)

400 错误请求 看起来像另一种选择。

您也可以使用非保留号码创建自己的号码。

但是如果请求被取消,你在哪里发送回复?