【问题标题】:When using an upload photo script, it won't rename the file使用上传照片脚本时,它不会重命名文件
【发布时间】:2014-08-21 22:28:53
【问题描述】:

我正在为我的社交网络使用照片上传脚本,但它不起作用,代码如下:

上传.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>";
}
?>

change_photo.php

<html>
<body>

<form action="upload.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

它只是说:

上传:A FILE.png 类型:image/png 大小:1028.0830078125 kB 临时文件: C:\xampp\tmp\phpD21D.tmp

警告:move_uploaded_file():copy() 函数的第二个参数 不能是 C:\xampp\htdocs\Social Network\upload.php 中的目录 第 43 行

警告:move_uploaded_file():无法移动 'C:\xampp\tmp\phpD21D.tmp' 到 'profile_pictures/' 中 C:\xampp\htdocs\Social Network\upload.php 第 43 行存储在: profile_pictures/

【问题讨论】:

    标签: php


    【解决方案1】:

    您的 $my_id 变量似乎为空。

    您是否在脚本的最顶部使用session_start();

    【讨论】:

    • @LeviJohnson 哎呀,您真的应该在处理文件上传之前对您的用户进行身份验证。
    • 是的,那里缺少会话开始!
    • 上传:PewDie Cyrus.png 类型:image/png 大小:1028.0830078125 kB 临时文件:C:\xampp\tmp\php826C.tmp 注意:未定义变量:C:\xampp\htdocs\ 中的_SESSION第 39 行的 Social Network\upload.php 警告:move_uploaded_file():copy() 函数的第二个参数不能是第 43 行的 C:\xampp\htdocs\Social Network\upload.php 中的目录警告:move_uploaded_file():无法将第 43 行的 C:\xampp\htdocs\Social Network\upload.php 中的 'C:\xampp\tmp\php826C.tmp' 移动到 'profile_pictures/' 存储在:profile_pictures/ 中,我添加了 session_start(); @meda
    • Undefined variable: _SESSION 你看到了吗?它没有设置,在你设置之前再次添加session_start()
    • 希望他能明白,不知道如何改写你的答案,哈哈
    猜你喜欢
    • 2015-01-15
    • 2011-12-24
    • 1970-01-01
    • 2014-07-14
    • 2012-07-20
    • 2019-06-10
    • 2020-05-19
    • 1970-01-01
    • 2012-12-15
    相关资源
    最近更新 更多