php - $_FILES 中的文件名不能很好地使用撇号

标签 php file-upload

我正在研究图像上传流程,但在测试后遇到了一个奇怪的问题。我们正在尝试使用以下文件名对其进行测试:

1234567890-=!@#$%^&()_+qwertyuiop[]{}asdfghjkl;'zxcvbnm,.png

表单发布后,我在 $_FILES 对象中查看它,我得到的名称是:

zxcvbnm,..png

(两个点不是错别字)

在对此进行调查后,我听说它可能与魔术引号有关。我试过关闭它们,但没有成功。有任何想法吗?另外,下面的代码...

$size = sizeof($_FILES['userfile']['name']);
for($i = 0; $i < $size; $i++) {
    $file_name = $_FILES['userfile']['name'][$i];
    $file_path = $_FILES['userfile']['tmp_name'][$i];
    $file_error = $_FILES['userfile']['error'][$i];
    ...

$file_name 变量是要修剪的内容。想法?

最佳答案

在名称上尝试 addslashes 函数: http://php.net/addslashes

关于php - $_FILES 中的文件名不能很好地使用撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612585/

相关文章:

php - 如何在 jquery 上使用循环来缩短我当前的代码?

php - .htaccess 重定向到错误页面

r - 使用 read_excel 上传并自动命名所有现有工作簿工作表(不指定工作表数量)

php - 解析 WWW URL 前缀的不同方法

javascript - PHP 删除 HTML 标签后的所有内容

javascript - 如何解决 IE 7 和 8 关于创建动态文件输入字段的错误?

c# - 具有 POST 方法和参数的 BackgroundTransferService

asp.net - AjaxFileUpload 回发 false

php - 用于文件上传的 PHP 的 $_FILES 的 Perl 等价物是什么?

java - 如何使用Android Studio 0.8.9配置Andengine,Andengine Tiled Map,Physics2DBox?