我下载了一个名为“ FileThingie”的PHP文件管理器,您可以在其中将文件上传到目录中。 效果很好,但是当我尝试上传路径很大(很多字符)的新文件时,PHP给我一个错误。
PHP显示的错误是:
Warning: move_uploaded_file(../../archivos/admin_arch/2019/365 GRADOS EMPRESA NUMERO 1/01. ENERO/OPERACIONES/GRANDES DESARROLLOS/MI EMPRESA GENERICA SA DE CV/GENERALES/Prueba/CUMA_VH1_SED_SEM33_1.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\Project\Sistema\admin_arch\index.php on line 822
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\phpE1F.tmp' to '../../archivos/admin_arch/2019/365 GRADOS EMPRESA NUMERO 1/01. ENERO/OPERACIONES/GRANDES DESARROLLOS/MI EMPRESA GENERICA SA DE CV/GENERALES/Prueba/CUMA_VH1_SED_SEM33_1.pdf' in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\Project\Sistema\admin_arch\index.php on line 822
代码:
if (@move_uploaded_file($c['tmp_name'], $ruta_archivo_final )) {
@chmod(ft_get_dir() . "/{$c['name']}", 0777);
$msglist++;
ft_set_message("Archivo subido correctamente. Nombre: " . $nomenclatura_temp);
ft_invoke_hook('upload', ft_get_dir(), $c['name']);
}
}
正如我告诉您的那样,如果路径名不是那么大(似乎有限制),则可以很好地工作,因此我认为权限没有问题。
谢谢!
答案 0 :(得分:0)
在Windows上使用节点(javascript)时,我一直都这样。
这是Windows问题,PHP完全可以使用长文件名。
来自:https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
最大路径长度限制
在Windows API(以下段落中讨论的某些例外情况)中,路径的最大长度为MAX_PATH,该长度定义为260个字符。
解决方法(我还没有尝试过):
https://www.howtogeek.com/266621/how-to-make-windows-10-accept-file-paths-over-260-characters/