我正在尝试建立一个可以上传flash .swf文件的网站。除了用户上传带有日语或任何其他亚洲字符的flash文件名(用日语字符测试)之外,它的效果很好,除非用户名字错误。
所以这是文件:
在开始移动文件之前,我将信息放入数据库中 数据库:
flash_id | flash_name |不相关| flash_size | flash_date
将闪存信息放入数据库后,我将文件从tmp文件夹移动到我存储上传文件的另一个文件夹。
如果将前两张图片中的文件名与第三张图片进行比较,则可以看出它们不一样。
以下是代码:
下面的变量map,filename和ext是移动过程中使用的值。
$map = 62;
$filename = $_FILES['upfile']['name'];
$ext = swf;
$str = "../uploads/$map/$filename.$ext";
if (!move_uploaded_file(
$_FILES['upfile']['tmp_name'],
//sprintf('../uploads/%s/%s.%s',$map,$filename,$ext)
$str
)) {
// Failed to move uploaded file.
throw new RuntimeException(4);
} else {
try {
$insq = $pdo->prepare('INSERT INTO flashes (flash_name, flash_size) VALUES (?,?)');
$insq->bindParam(1, $filename);
$insq->bindParam(2, $filesize);
$insq->execute();
} catch (PDOException $ex) {
throw new RuntimeException(999);
}
}
// File is uploaded successfully.
echo 10;
答案 0 :(得分:0)
我无法找到解决方案。因此,我没有尝试修复此问题,而是按照tttony的注释进行操作,以便将file_names随机化,并将随机化之前的file_name放入数据库中。所以我们可以在我们的网站上以原始名称显示它,但是当我们要下载它时,我们将收到一个随机的file_name。但是,如果您使用html download="original_file_name"
属性,您仍然可以让用户使用原始file_name下载它。