【问题标题】:Trying to upload picture but does not save to server尝试上传图片但不保存到服务器
【发布时间】:2015-01-15 02:52:25
【问题描述】:

比我发布的通常的废话要简单得多! 尝试创建一个“上传”按钮以允许用户上传自己的照片。然后应该将图片重命名为 pid,并保存到 images 文件夹中..

我不确定为什么它不起作用,尤其是当萤火虫显示 fileField 正在发布时。

<?php 
// Parse the form data and add inventory item to the system
if (isset($_POST['picID'])) {
    $pid = $_SESSION["pid"];
    // Place image in the folder 
    $newname = "$pid.jpg";
    move_uploaded_file( $_FILES['fileField']['tmp_name'], "images/$newname");
    header("location: index.php"); 
    exit();
    }   
?>

图片上传字段

 <form method='post' enctype='multipart/form-data' action='playerparent-profile.php?pid=<?=$pid?>'>
            <td><label>
          <input type="file" name="fileField" id="fileField" />
                  <input type="hidden" name="picID" id="picID" value="<?=$pid?>">
                 <input type="submit" name="button" id="button" value="UPLOAD" />
        </label></td>
        </form>

只是想弄清楚我到底做错了什么?任何帮助表示赞赏!

【问题讨论】:

  • 确保它进入正确的路径,因为没有斜杠,它将相对于当前脚本的目录移动它,而不是发送POST的页面目录从。我不确定您的文件结构,但值得检查。还要确保设置了$_SESSION["pid"]
  • 很多安全漏洞,但这个不断弹出的$pid 到底是什么?
  • 我相信你不能在服务器中做到这一点,无论如何你使用的是什么主机?因为你不能在 GoDaddy 中做到这一点!
  • 嗨@Arqetech,我正在使用 LCN。

标签: php html forms file-upload


【解决方案1】:

那是因为我猜这行是错误的。 $pid = $_SESSION["pid"]; 你应该使用 $pid = $_POST["pid"];

您的 $newname 变量没有获得任何名称,它将始终存储 .png

希望对你有帮助

【讨论】:

  • 这与 Chan 的较早回答相结合,使其工作。谢谢!
【解决方案2】:

我相信这是由于您的 PHP 脚本的 $newname 变量造成的。由于您使用双引号,PHP 将尝试解析以“$”符号开头并以该字符串中的空格结尾的任何变量。因此,在您的情况下,PHP 可能会尝试查找变量 $pid.jpg 并且找不到。

尝试使用单引号连接:

$newname = $pid 。 '.jpg';

move_uploaded_file($_FILES['fileField']['tmp_name'], 'images/' . $newname);

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 2018-10-10
    • 2015-11-07
    • 2011-06-01
    相关资源
    最近更新 更多