Ruanxiang_ 2022-11-05 18:44 采纳率: 66.7%
浏览 86
已结题

php用rename函数移动文件报warning

问题遇到的现象和发生背景

有一个表单,用form元素提交的,表单内有input file元素,因为想要刷新页面后仍保存file的值,
于是每次用户选择图片后,都会发起一个$.ajax请求,把图片存到服务器缓存(我能想到的是存$_Session)里,然后正式提交的时候再把图片从$_Session中取出来移动到存图片的文件夹里,但是移动文件我用move_uploaded_file函数不行,用rename函数也不行,请问怎么实现文件移动

用代码块功能插入代码,请勿粘贴截图
var formData = new FormData();
                        var name = $("input").val();
                    formData.append("file", file); //file文件对象
                    formData.append("type", fileId);
                    $.ajax({
                        type: 'POST',
                        url: 'uploadCache.php',
                        data: formData,
                        processData: false, // 告诉jquery要传输data对象
                        contentType: false,   // 告诉jquery不需要增加请求头对于contentType的设置
                        success: function (arg) {
                            console.log(arg)
                            
                        },
                        error: function () {
                            alert('上传错误')
                        }
                    })

//uploadCache.php
session_start();
$type = $_POST['type'];
$_SESSION[$type] = $_FILES['file'];

//表单提交php
    if($driveLisenceUrl != '' && $_SESSION['drive_lisence']){
        $fileName = $user . '-' . date("Y.m.d") . md5(uniqid(microtime(true),true)) . "." . substr($_SESSION['drive_lisence']["name"], strrpos($_SESSION['drive_lisence']["name"], '.')+1);
        $a = rename($_SESSION['drive_lisence']["tmp_name"],"../uploadDriveLisence/" . $fileName);
    }

运行结果及报错内容

Warning: rename(C:\Windows\Temp\php230C.tmp,../uploadDriveLisence/1801010011)

我的解答思路和尝试过的方法

移动文件我用move_uploaded_file函数不行,用rename函数(报warning)也不行

我想要达到的结果

实现文件从$_Session移动到目的文件夹

  • 写回答

4条回答 默认 最新

  • 游一游走一走 2022-11-05 19:04
    关注
    获得3.75元问题酬金
    1. 你不能用动态的key值存,最好保存文件路径而不是整个文件
      //uploadCache.php
      session_start();
      $_SESSION['uploadTempFile'] = $_FILES['file']['tmp_name'];
      
    2. 移动时用seesion里面的路径
           $a = rename($_SESSION['uploadTempFile'],"../uploadDriveLisence/" . $fileName);
      
    评论

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 赞助了问题酬金15元 11月5日
  • 修改了问题 11月5日
  • 创建了问题 11月5日

悬赏问题

  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!