文件名中包含分号(;)的文件的文件上传失败

时间:2019-04-22 12:06:06

标签: ios swift nsurlsessionuploadtask

我正在尝试使用URLSessionUploadTask使用方法将文件上传到API

uploadTask(with request: URLRequest, fromFile fileURL: URL) -> URLSessionUploadTask

一切正常,直到文件名不包含分号为止。

当文件名包含分号应用时,由于以下错误而开始崩溃-

  

***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'无法在以下位置读取文件   文件:/// var / mobile / Containers / Data / Application / E647A171-A7CE-46D8-BE81-DB3626DD0157 / Library / Caches / downloads / 04405877-1554-744f-92ac-379c76300cd8 / C8D67486-B79F-44C7-9295-768F0D4D0323 /appium%20!@%23$%25%5E&-+=%7B%7Dl%5B%5D%20;'.,%20%20;%20logs%20-%20Copy% 20(1).ppt'

导致我的应用崩溃的FileName示例:

appium!@#$%^&_- + = {} l []; \'。,_;日志-复制(1).ppt

;. pdf

] ;. ppt

如果有人遇到相同问题,请提供帮助。预先感谢。

1 个答案:

答案 0 :(得分:0)

您能否尝试将; 替换为一些文本,并在服务器端再次将一些文本替换为;

示例:-

如果(文件名包含;),则文件名替换为“ SEMICOLON”。

上传文件时的应用程序端:-

真实文件名= “ ;. pdf”
上传文件时的新名称= “ SEMICOLON.pdf”

在服务器端将文件保存到数据库中时:-

响应中的文件名= “ SEMICOLON.pdf”
保存到数据库中时的新名称= “ ;. pdf”