【问题标题】:The file array not getting set when uploading files having single quote in names上传名称中包含单引号的文件时未设置文件数组
【发布时间】:2016-02-18 03:40:13
【问题描述】:

我正在使用 CodeIgniter 框架构建一个 Web 应用程序。问题是,在上传文件名中包含单引号 ' 的文件时(例如:Rob's.wmv),我在控制器中得到一个空文件数组。当文件名包含特殊字符时,CI 确实有更新文件名的代码,但由于数组设置不正确,因此不会进行上传。我不明白发生了什么,我尝试调试,似乎在我的本地机器上上传工作正常,但在服务器上却不行,这使它更有趣。

UPDATE 文件数组 var_dump 返回一个空数组,所以我什至无法在脚本中获取文件名。 文件数组没有设置,我没有得到任何关于文件的信息。

【问题讨论】:

  • 使用php函数addslashes()。例如:$var = "Rob's.wmv"; 然后$var = addslashes($var);
  • @FrayneKonok 在哪里?
  • 您在表单中使用enctype="multipart/form-data" 吗?
  • 是的,我使用enctype="multipart/form-data"
  • 您是否设置了上传文件的库?辅助库?

标签: php codeigniter file-upload


【解决方案1】:

您必须使用 php 中的 addslashes()addslashes() 函数返回一个在预定义字符前带有反斜杠的字符串。

示例:

$var = "Rob's.wmv"; 
//then 
$var = addslashes($var);

预定义的字符是:

single quote (')
double quote (")
backslash (\)
NULL

提示:此函数可用于准备字符串以存储在数据库中和数据库查询。

升级问题时:

请仔细阅读这两篇文章,这只是一个配置问题。之后我认为你可以做到。

codeigniter-file-upload

how-to-upload-file-in-codeigniter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-08
    • 2018-09-21
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    相关资源
    最近更新 更多