Php 使用W3C中修改的上载脚本?

Php 使用W3C中修改的上载脚本?,php,Php,当使用W3学校修改的上传脚本时,它不起作用,而且StackOverflow用户已经证明它起作用了 这是密码,不知道发生了什么! 它所能想到的就是 注意:未定义的索引:第12行C:\xampp\htdocs\Social Network\upload.php中的文件 注意:未定义的索引:第13行C:\xampp\htdocs\Social Network\upload.php中的文件 注意:未定义索引:第14行C:\xampp\htdocs\Social Network\upload.php中的文

当使用W3学校修改的上传脚本时,它不起作用,而且StackOverflow用户已经证明它起作用了

这是密码,不知道发生了什么! 它所能想到的就是

注意:未定义的索引:第12行C:\xampp\htdocs\Social Network\upload.php中的文件

注意:未定义的索引:第13行C:\xampp\htdocs\Social Network\upload.php中的文件

注意:未定义索引:第14行C:\xampp\htdocs\Social Network\upload.php中的文件

注意:未定义的索引:第15行C:\xampp\htdocs\Social Network\upload.php中的文件

注意:未定义的索引:第16行C:\xampp\htdocs\Social Network\upload.php中的文件

无效文件

change_photo.php

    <html>
    <body>
    <?php
    session_start();
    $my_id = $_SESSION['user_id'];
    ?>
    <form action="upload.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" id="file"><br>
    <input type="submit" value="Submit">
    </form>
    </body>
    </html>

upload.php

<style>
.sucess{
color:#088A08;
}
.error{
color:red;
}
</style>

<?php
$file_exts = array("jpg", "bmp", "jpeg", "gif", "png");
$upload_exts = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($upload_exts, $file_exts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
// Enter your path to upload file here
if (file_exists("profile_pictures/" .
$_FILES["file"]["name"]))
{
echo "<div class='error'>"."(".$_FILES["file"]["name"].")".
" already exists. "."</div>";
}
else
{
$my_id = $_SESSION['user_id'];
$new_file_name = $my_id;

move_uploaded_file($_FILES["file"]["tmp_name"],
"profile_pictures/" . $new_file_name);
echo "<div class='sucess'>"."Stored in: " .
"profile_pictures/" . $new_file_name."</div>";
}
}
}
else
{
echo "<div class='error'>Invalid file</div>";
}
?>

文件名:

upload.php .成功{ 颜色:#088A08; } .错误{ 颜色:红色; }
您没有在HTML部分中定义文件名。更改:

<input type="file" id="file">



它提供了Upload:Jerry.png类型:image/png大小:285.4423828125 kB临时文件:C:\xampp\tmp\phpAE3A.tmp注意:未定义变量:\第39行C:\xampp\htdocs\Social Network\Upload.php中的会话警告:move\u Upload\u file():复制的第二个参数()函数不能是第43行C:\xampp\htdocs\Social Network\upload.php中的目录警告:move_upload_file():无法将第43行C:\xampp\htdocs\Social Network\upload.php中的“C:\xampp\tmp\phpAE3A.tmp”移动到“profile_pictures/”中存储在:profile_pictures/中,但不起作用:(@LeviJohnson答案在错误消息中。会话未启动,因此
$my_id
为空,因此复制失败,因为文件没有名称。“未定义变量:_sessionin blah blah blah…”Put
Session_start()
在upload.phpThanks!的顶部,但是现在我如何找到它是什么文件类型,因为它只是一个数字文件,没有图片扩展。我刚刚想到了这样的事情!$filechanger=“{$\u SESSION['user\u id']}.{$\u FILES['type']}”;
<input type="file" id="file" name="file">