invalid argument php move_PHP中move_uploaded_file上传中文文件名失败的解决方法
PHP中move_uploaded_file上传中文文件名失败
项目需要上传文件名保持不变,发现上传中文失败:错误如下:
move_uploaded_file(public/upload/files/2019/04-17/\开密二次开发.rar): failed to open stream: Invalid argument
失败的原因大致猜到是编码问题.保存文件时,需要将中文由utf8转为gb2312。
$files = $_FILES['attachment']; // 上传的表单附件名
$name = iconv("UTF-8", "gb2312", $files['name']);
move_uploaded_file($files['tmp_name'], "/upload/$name");
额外补充:如果大家使用Tp5 上传,文件在think/File.php.大概是374行:大多数解决办法是在下面的方法转码,但会存在问题,转码后,文件是上传成功,随后就报错:
elseif (!move_uploaded_file($this->filename, iconv('utf-8','gb2312',$filename))) {
$this->error = 'upload write error';
return false;
}
会抛出异常:
SplFileobject::__construct(/upload\files\2019\04-16\资源.rar): failed to open stream: No such file or directory
解决:
上传中文乱码,使用iconv转码的,不应该在move_uploaded_file()中转码,应该在file类 buildSaveName()方法中大概422行中转码:
最后一段:
return iconv('utf-8','gb2312',$savename);
那么如果大家是ajax上传,记得在返回的时候转成utf8返回,比如返回的中文乱码,ajax解析报错:
比如以Tp5.0是这样:
$return_data['url'] = '/'.UPLOAD_PATH.$new_path.iconv('gb2312','utf-8',$info->getSaveName());
$this->ajaxReturn($return_data);
总结
以上所述是小编给大家介绍的PHP 中move_uploaded_file 上传中文文件名失败 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
php获取文件名称和扩展名的方法
php获取文件名称和扩展名
1.basename()-返回路径的文件名
请看下面php代码:
$path =
"/usr/www/html/index.php";
echo basename($path)."
";
//如果选择suffix则忽略扩展名
echo basename($path,".php");
?>
运行结果:
index.php
index
2.dirname()-返回当前脚本的文件路径!
php代码:
//——FILE__返回文件完整路径
$dir = dirname(__FILE__);
echo $dir;
?>
运行结果:
F:\web\zend\exercise
3.pathinfo() 返回一个关联数组包含有 path 的信息。
包括以下的数组单元:路径名称dirname,文件名称basename 和 扩展名称extension。
请看下面简单代码演示:
$path =
"/usr/www/html/index.php";
$pathinfo
= pathinfo($path);
echo "目录名称:$pathinfo[dirname]
";
echo "文件名称:$pathinfo[basename]
";
echo "扩展名:$pathinfo[extension]";
?>
运行结果:
目录名称:/usr/www/html
文件名称:index.php
扩展名:php
4.realpath -- 返回规范化的绝对路径名
php代码如下:
$path =
"./exercise/php.txt";
$realpath
= realpath($path);
echo $realpath;
?>
最后注意一个小技巧:不同路径的文件路径操作符可能,不同,windows下可以用"/"和"\",
linux下只能用"/",所以开发的时候,建议都用"/",如我上面的文件路径写法!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
invalid argument php move_PHP中move_uploaded_file上传中文文件名失败的解决方法相关推荐
- 论坛php 图片上传,Discuz上传图片失败的解决方法
相信使用Discuz的朋友们都遇到过这样的问题,上传文件失败或不显示,包括现在官方论坛里还有很多站长在问这个问题.我以前也遇见过这样的问题,现在将自己的解决方法与大家分享探讨.没有多少技术含量. 1: ...
- 微信小程序云开发CMS内容管理平台csv上传乱码或失败的解决方法
一.新建Excel并编辑数据: 二.Excel 编辑好后另存为csv文件(直接导入微信小程序云开发数据库会出现中文乱码): 三.csv文件直接改后缀名为.txt,然后用记事本打开(如首行出现空字段需删 ...
- ubuntu中RAR解压缩中文文件名失败的解决方法
1.到http://www.rarlab.com/download.htm下载RAR 4.20 for Linux 2.解压缩,运行终端,进入解压缩的目录,命令行运行:sudo make inst ...
- Java中FTPClient上传中文目录、中文文件名乱码问题解决方法
Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 参考文章: (1)Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 (2)https://www.cnblog ...
- 织梦后台上传图集显示302错误解决方法
织梦后台上传图集显示302错误解决方法 在include/userlogin.class.php文件中的第二行session_start();前加上 if (isset($_POST["PH ...
- 完美解决ExtJs6上传中文文件名乱码,后端SpringMVC
ExtJs上传中文文件名乱码,观察请求. ExtJs6上传乱码从后台无法解决,因为文件名请求里面就已经乱码了,后台无法解码. 除非请求参数正确没有乱码,后台因为编码设置不一样,可以通过后台处理乱码 这 ...
- Electron在win7上加载plotyjs失败的解决方法
Electron在win7上加载plotyjs失败的解决方法 错误详情 解决方法 错误详情 程序中使用plotjs,经过electron打包之后,在win10电脑上运行正常,在win7电脑上没有办法加 ...
- C# .net中cookie值为中文时的乱码解决方法
C# .net中cookie值为中文时的乱码解决方法 一.cookie的名称或子cookie的名称不能为中文,否则无法获得cookie 这个好办,名称不用中文即可 二.cookie的值为中文时候,取c ...
- PHP中file_exists()判断中文文件名无效的解决方法
PHP中file_exists()判断中文文件名无效的解决方法 参考文章: (1)PHP中file_exists()判断中文文件名无效的解决方法 (2)https://www.cnblogs.com/ ...
- ASP中文件上传组件ASPUpload介绍和使用方法
[导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload 要实现该功能,就要利用一些特制的文件 ...
最新文章
- 创建文档库时指定文件夹(路径)
- PHP的CURL报错的排查记录:短连接的成本真的很高啊
- 都2021年了,不会还有人连深度学习都不了解吧(三)- 损失函数篇
- C# 修改项目文件夹名称完全版
- 早晨有好多学生在买早餐吃,这样好吗?家长不给孩子做饭吗?
- POSIX 线程详解
- 开放API接口 笑话、天气、新闻 1
- GBin1分享:一个漂亮的jQuery页面内容导航插件 - Flexiable Nav
- gdb 查看是否 栈溢出_[原理分析]Linux下的栈溢出案例分析-GDB调试操练[1]
- debian 连接 蓝牙键盘
- SQLI-LABS——Page-2 Advanced Injections Less21~Less37
- ESL4.5 学习笔记(含感知器内容SVM预备知识)
- 怎么架设魔兽世界服务器?
- NB-IOT相关的术语 SGW、PGW、LTE、RRC、E-UTRAN、EPC
- 微信小程序微信授权登录,使用getPhoneNumber()部分手机无法获取动态令牌code(Taro)
- java计算一个月有几周_java 如何获取 一个月 有多少周
- 大数据江湖之即席查询与分析(上篇)--即席查询与分析的前世今生
- 推荐系统研究常用数据库
- 四大维度全景揭秘阿里巴巴智能对话开发平台 1
- 计算机信息心得体会作文50字,信息技术心得体会(精选11篇)