文件修改接口,修改文件名,是只修改FileName这个字段,而不是连location的那个位置的文件名也一起修改并且更新location字段吗
来源:2-7 编码实战:实现文件修改接口+小结

杰神
2019-03-20
文件修改接口,修改文件名,是只修改FileName这个字段,而不是连location的那个位置的文件名也一起修改并且更新location字段吗?
我理解的文件名修改是指将
{
"FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
"FileName": "headline_notice@3x.png",
"FileSize": 2682,
"Location": "./uploadDir/headline_notice@3x.png",
"UploadAt": "2019-03-20 18:20:23"
}
修改成为
{
"FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f",
"FileName": "newName.png",
"FileSize": 2682,
"Location": "./uploadDir/newName.png",
"UploadAt": "2019-03-20 18:20:23"
}
写回答
1回答
-
同学你好,Location字段可以不用修改的,对于用户来说其实这个字段是隐藏的,它只作为路径来寻找已上传的文件;用户看到的的用户名是FileName指定的,所以重命名时只需要改FileName字段就行了。
另外Location严格上应该是要具有唯一性的,比如不同的文件可能取了相同的FileName,所以我演示的代码也需要改下,改成用FileSha1来拼接Location,比如:{ "FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f", "FileName": "headline_notice@3x.png", "FileSize": 2682, "Location": "./uploadDir/headline_notice@3x.png", "UploadAt": "2019-03-20 18:20:23" }
修改成:
{ "FileSha1": "a2e4bce4fb37633ec00f4bb31666329c4cf9210f", "FileName": "headline_notice@3x.png", "FileSize": 2682, "Location": "./uploadDir/a2e4bce4fb37633ec00f4bb31666329c4cf9210f", "UploadAt": "2019-03-20 18:20:23" }
这样只要文件上传完成后,这个Location的值就不用再进行更新,因为FileSha1是不会变的。
我稍后把代码优化下,多谢提醒!
152019-03-22
相似问题