1

我确定我在做一些愚蠢的事情,但我已经检查并重新检查了这一点。这是我的照片上传器,旨在将照片文件本身保存到一个文件夹(名为“reccs”),然后将照片的名称保存到我的数据库中的一行。DB 部分运行良好,但我的照片没有显示在文件夹中。它没有显示任何错误并且似乎正在工作(我收到“成功”消息)。确认!

代码如下。感谢您的任何见解。

$link = mysql_pconnect($host, $username, $password);
$db = mysql_select_db ($dbname);

$target = "reccs/";
$target = $target . basename($_FILES['photo']['name']);
$pic=($_FILES['photo']['name']);

mysql_query("UPDATE login SET recc = '$pic' WHERE username = '".$_SESSION['user']['username']."'");

if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{

echo "The file has been uploaded, and your information has been added to the directory";
 }
else {

echo "Sorry, there was a problem uploading your file.";
}
4

4 回答 4

0

reccs 前面应该有一个正斜杠吗?在您知道 move_upload_file 成功之后,在 if 语句中似乎 mysql 更新查询会更好。

于 2012-08-10T04:21:49.190 回答
0

尝试;

if(move_uploaded_file($pic, $target))
于 2012-08-10T04:24:51.833 回答
0

根据您的服务器设置,您可能必须将 $target 设置为绝对路径而不是相对路径。至少它应该是你的主目录的绝对目录,所以如果reccs 是你的根站点目录中的一个目录,那么将$target 设置为/reccs/file.name。

原因是文件默认上传到 /tmp,它是在根 (OS) 级别,而不是托管级别,因此相对于 /tmp 的路径通常没有意义。

于 2012-08-10T04:38:43.310 回答
0

保存同名的照片是非常糟糕的做法。我会建议你在上传照片之前做下面的事情。

  • 提取名称和扩展名。
  • 现在检查扩展是否有效。如果有效,则更进一步
  • 首先修剪然后用单个空格清除所有多个空格。
  • 现在小写文件名并_用文件名更改所有空格并附加时间戳。
  • 删除所有特殊字符 ( ', " , \ etc)
  • 现在添加具有该扩展名的文件名。

然后存入数据库

于 2012-08-10T04:45:40.507 回答