1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
      <output id="hzk7v"></output>
    2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
    3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

      浅析PHP 中move_uploaded_file 上传中文文件名失败

       更新时间£º2019年04月17日 11:13:16   作者£º周伯通的麦田   我要评论

      这篇文章主要介绍了PHP 中move_uploaded_file 上传中文文件名失败的原因分析及解决方法 ,需要的朋友可以参考下

      项目需要上传文件名保持不变£¬发现上传中文失败£º错误如下£º

      move_uploaded_file(public/upload/files/2019/04-17/\开密二次开发.rar): failed to open stream: Invalid argument

      失败的原因大致猜到是编码问题.保存文件时£¬需要将中文由utf8转为gb2312¡£

      <?php
      $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 上传中文文件名失败 ,希望?#28304;?#23478;有所帮助£¬如果大家有任?#25105;?#38382;请给我留言£¬小编会及时回复大家的¡£在此也?#27973;£¸行?#22823;家对脚本之家网站的支持£¡
      如果你觉得本文对你有帮助£¬欢迎转载£¬烦请注明出处£¬谢谢£¡

      相关文章

    4. 我整理的PHP 7.0主要新特性

      我整理的PHP 7.0主要新特性

      截止到目前为止£¬PHP官方已经发布了php7的RC5版本£¬预计在11月份左?#19968;?#21457;布第一个正式版本£¡现在?#27492;µphp7的重大特性肯定已经是定型了£¬不会再有什么变动了¡£后续一些版本的迭代主要也就是修修bug£¬优化之类的¡£下面就?#27492;?#35805;我们一直期待的php7.0新特征吧
      2016-01-01
    5. 最新评论

      常用在线小工具

      3dÊÔ»úºÅÖвÊÍø

        1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
          <output id="hzk7v"></output>
        2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
        3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>

            1. <output id="hzk7v"><pre id="hzk7v"><address id="hzk7v"></address></pre></output>
              <output id="hzk7v"></output>
            2. <nav id="hzk7v"><i id="hzk7v"><em id="hzk7v"></em></i></nav>
            3. <listing id="hzk7v"><delect id="hzk7v"><em id="hzk7v"></em></delect></listing>