【问题标题】:Is it possible to use move_upload_file with mod_rewrite on?是否可以使用带有 mod_rewrite 的 move_upload_file ?
【发布时间】:2016-01-08 14:45:45
【问题描述】:

我正在使用 mod_rewrite 将所有请求重定向到我网站中的索引。我需要实现一个功能来上传文件/图像,但它不起作用

$config_upload = $_SERVER['DOCUMENT_ROOT']."/files/";
$ext = getExt($_FILES['file']['name']);
move_uploaded_file($_FILES['file']['tmp_name'], $config_upload.rand().$ext);

因为我使用的是 mod_rewrite,所以这根本不起作用。我的“文件”目录有 777 权限。但我认为 mod_rewrite 正在搞乱这个相对路径,并且该功能无法正常工作。

您知道如何解决它吗?我正在考虑将我的 mod 重写限制为仅 php 文件

我当前的 .htaccess:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !/(admin|css|fonts|ico|include|js)/
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [L]
</IfModule>

【问题讨论】:

  • mod_rewrite 影响文件上传
  • 有什么办法可以解决当时发生的事情吗?我尝试了几种不同的配置,但我不知道我还能尝试什么
  • 不要使用与您的服务器相关的 $_SERVER['DOCUMENT_ROOT'] ,而不是您的应用程序。例如,如果您的应用程序是虚拟主机或在子文件夹中,它可能不是您要查找的路径。而是将应用的根路径存储在配置文件(或 elswhere)中
  • 不直接相关,但此 ($config_upload.rand().$ext) 导致文件覆盖。使用uniqid() 而不是rand()

标签: php apache .htaccess mod-rewrite upload


【解决方案1】:

php 不关心也不知道你的 mod 重写。

只需调试您的 php 文件。

您确定您的$_FILES['file']['tmp_name']$config_upload.rand().$ext 正确吗?输出它们以进行仔细检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2012-11-10
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2012-11-17
    相关资源
    最近更新 更多