1

我正在开发一个由用户维护的小型在线商店,并试图让我的最终用户(商店管理员)上传产品的图形。但是,当我运行此脚本时,它实际上并没有存储图像。我从这里的各种技巧和教程构建了这个脚本,并且除了图像上传部分之外的所有东西都可以工作。

// Set the image target directory here
$target = "itemImages/";
$target = $target . basename($_FILES["image"]["name"]);

// Variables get POSTed here - just tack new ones on at the end.
// Various POSTs omitted for brevity

$pic=($_FILES["image"]["name"]);

// Places the picture in the folder
if(move_uploaded_file($_FILES["image"]['tmp_name'], "itemImages/")) 
{
echo "The file " . basename($_FILES['uploadedfile']["name"]) . " has been         uploaded.<br />";
}else {
    echo "There was an issue adding this item. Please try again.<br />";
}

// Writes variables to the database
mysql_query("INSERT INTO tbl_item   (itemNAME,itemDESC,itemCOST,itemHCOL,itemHSIZ,itemIMG)
VALUES ('$itemName','$itemDesc','$itemCost','$hasColor','$hasSize','$pic')");

mysql_close($con);
?>

非常感谢任何帮助、提示、建议、见解等。

4

3 回答 3

3

move_uploaded_files需要一个文件名作为它的目标。它不会盲目地移动到一个目录,所以

move_uploaded_files($_FILES..., 'somedir/somefile.txt');

有效,但是

move_uploaded_file($_FILES..., 'somedir/');

将不会。

另外,请注意您的数据库操作容易受到SQL 注入攻击。您盲目地插入上传文件的远程名称(['name']通过 $pic),并且该名称完全在远程用户的控制之下。

于 2012-08-10T14:37:11.993 回答
0

确保itemImages文件夹具有您的 Web 服务器(例如Apache)运行的用户的写入权限(例如www-data

于 2012-08-10T14:36:12.907 回答
0

确保 .php 文件和您要写入的文件夹具有相同的“所有者”。或者尝试将 itemImages 文件夹的权限设置为 777(不建议这样做,只是一种调试策略)

于 2012-08-10T14:42:20.157 回答