【发布时间】:2016-11-30 23:23:45
【问题描述】:
首先,我的代码可以运行...但是生成的文件导致我的服务器出现问题。只有带有奇怪字符的文件才会在服务器上导致错误,例如文件不存在或尝试通过 FTP 打开文件时连接到文件时出错。所有没有奇怪字符的文件在服务器上都可以正常工作,并且可以打开和编辑。
这是我的工作流程:
- 从用户屏幕上的
TextView获取文本,运行此代码以删除不需要的字符:
replaceAll("[^a-z ,()A-Z0-9]+", "-");
- 使用此文本作为文件名创建一个文本文件;
-
使用此 PHP 脚本将此文本文件上传到服务器:
<?php $file_path = "uploads/"; $file_path = $file_path . basename( $_FILES['uploaded_file']['name']); if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) { echo "success"; } else{ echo "fail"; } ?>
文件名包含这些奇怪的字符,我认为是由于用户屏幕上的非英文字符。
我需要小心,因为上传文件到我的服务器的路径是基于这个文件名的,我不知道如何用非英文字符测试它。任何帮助深表感谢。我需要在不弄乱文件路径的情况下删除/替换任何非英文字符。
【问题讨论】:
-
这是因为您从设备发送的字符未编码。请使用 UTF-8 对其进行编码,并在服务器端进行解码。
-
你能帮忙看看怎么做吗?
-
我推荐你关注这个tutorial
-
看起来不错,我会试试的。谢谢。
-
这很好用,谢谢,但我留下的文件名包含 %2F:
name=%2Fstorage%2Femulated%2F0%2FDownload%2FServerError%2F105。如何在写入文件名之前删除这些并保留空格?请看我上面的PHP...谢谢,请帮忙。