我已经实现了dropzone.js并使用了https://www.dropzonejs.com/上提供的php代码
这很简单并且有效。
问题是,如果我从iOS上传,则文件名会更改。原始文件名为IMG_5519.jpg,上传后名称已更改为
B1DE8802-938A-4F01-A2AA-C46E6DCA778B.jpeg
当我从Windows 7拖动文件并将其放到放置区时,文件名不会更改。
https://www.dropzonejs.com/上显示的upload.php如下:
<?php
$ds = DIRECTORY_SEPARATOR; //1
$storeFolder = 'uploads'; //2
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name']; //3
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4
$targetFile = $targetPath. $_FILES['file']['name']; //5
move_uploaded_file($tempFile,$targetFile); //6
}
?>
我的php很弱,但是我看不到任何将iOS识别为源并更改文件名的东西,所以也许这种变化发生在iOS中,我对此无能为力。
起初我以为更改名称是为了避免在上载目录中发生名称冲突,但是当我发现在Windows中运行此名称保留原始名称时,那是不对的。
是否可以通过iOS保留原始文件名?
谢谢
编辑/ 我发现iOS中的修改名称来自浏览器。 Chrome,Firefox和Brave都会生成这些经过更改的长文件名,但是Puffin会通过原始名称传递-正是我想要的结果。
我一直在尝试了解dropzone.js,它提供了file.name
和file.upload.filename
的规定,这表明一个是原始的,一个已被修改。 file.upload.filename
仅出现在一行代码中(加上注释),如果我将其替换为file.name
,结果没有任何区别。
因此,现在我正在寻找有关为什么大多数浏览器会更改文件名以及是否可以禁止文件名的信息。