【问题标题】:File Upload Error, when having danish character in image file name文件上传错误,当图像文件名中有丹麦字符时
【发布时间】:2013-10-23 11:51:52
【问题描述】:

我正在使用名为 Podio 的第三方 API。 我想使用 api 的功能和它的工作酷上传文件

唯一的问题是当我上传一个名为“Skærmbillede.jpg”的文件时,它会返回此错误

致命错误:未捕获的 PodioBadRequestError:“无法解码请求实体。尝试了以下字符集:['us-ascii', 'utf-8']”请求 URL:http://api.podio.com/file/v2/ 请求正文:空堆栈跟踪:#0 /home/meetuniv/public_html/anjali/tidligerebestilinger/lib/Podio.php(271): Podio::request('POST', '/file/v2/', Array, Array) #1 / home/meetuniv/public_html/anjali/tidligerebestilinger/models/PodioFile.php(40): Podio::post('/file/v2/', Array, Array) #2 /home/meetuniv/public_html/anjali/tidligerebestilinger/new_request .php(43): PodioFile::upload('/tmp/phpPRXwtP', 'Sk?rmbillede.pn...') #3 {main} 在 /home/meetuniv/public_html/anjali/tidligerebestilinger/lib/Podio 中抛出.php 在第 208 行

只是因为“Skærmbillede.jpg”文件名包含丹麦字符。 有什么办法吗?我可以用合适的字符更改或替换文件名丹麦字符。

谢谢你看看...

【问题讨论】:

  • API 说它接受 UTF-8 编码的数据——所以只要用 UTF-8 编码文件名就可以了,我想说……
  • 谢谢@CBroe $str = mb_convert_encoding($str, "UTF-8");很有用。

标签: php html


【解决方案1】:

您必须在将图像上传到服务器时转换其名称,因为服务器无法处理这些字符。因此,您需要将 æ 更改为 ae 或类似的东西。这意味着您将不得不摆弄您正在使用的插件。 你可以做http://www.w3schools.com/jsref/jsref_decodeuricomponent.asp

或者您可以简单地写信告诉人们他们应该在上传图片之前重命名。

【讨论】:

  • 编码是最好和正确的方法。谢谢
  • 是的,(æøå)服务器无法处理,但即使您的图像包含(%)符号,它也会被存储在服务器上。然后如果需要显示原始文件名可以再次解码。
【解决方案2】:
$str = mb_convert_encoding($str, "UTF-8");

对我的情况有帮助。谢谢收看。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    • 2023-03-23
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多