You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP上传图片后无法移动至指定upload文件夹

图片上传失败问题排查与修复
  • 核心问题:路径拼接错误
    你代码中move_uploaded_file的路径拼接缺少目录分隔符,导致文件没有被放入upload文件夹,而是被命名成了upload+文件名的形式。修正路径:

    move_uploaded_file($_FILES["Company_Pic"]["tmp_name"], "../mojob/upload/" . $filename);
    
  • 检查目录权限与存在性

    • 确认../mojob/upload文件夹已创建,若不存在需手动创建
    • 确保服务器进程(如apache、www-data)对该文件夹有写入权限,可设置权限为755(生产环境推荐)或777(测试环境临时使用)
  • 添加错误调试代码
    在上传代码后加入错误检查,快速定位问题:

    $uploadPath = "../mojob/upload/" . $filename;
    if (!move_uploaded_file($_FILES["Company_Pic"]["tmp_name"], $uploadPath)) {
        print_r(error_get_last());
    }
    
  • 安全优化建议

    • 避免直接使用用户上传的原始文件名,生成唯一文件名防止冲突和恶意文件:
      $fileExt = pathinfo($filename, PATHINFO_EXTENSION);
      $uniqueName = uniqid('company_', true) . "." . $fileExt;
      // 后续数据库存储和上传路径都使用$uniqueName
      
    • 验证文件类型和大小,限制仅允许图片上传:
      $allowedMime = ['image/jpeg', 'image/png', 'image/gif'];
      if (!in_array($_FILES["Company_Pic"]["type"], $allowedMime)) {
          exit("仅支持JPG、PNG、GIF格式图片");
      }
      if ($_FILES["Company_Pic"]["size"] > 2 * 1024 * 1024) { // 限制2MB
          exit("图片大小不能超过2MB");
      }
      

内容的提问来源于stack exchange,提问作者Mr Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:30:53