我在将图像上传到网站主机时出错。但我在WAMP服务器上没有遇到任何问题。这就是我犯的错误。
[20-Aug-2013 00:58:27 America/Denver] PHP Warning: copy(/photos/Light-And-Snow.jpg) [<a href='function.copy'>function.copy</a>]: failed to open stream: No such file or directory in /home/rajeev/public_html/upload.php on line 86
86线上的代码是
mysql_query(
"INSERT INTO
gallery_photos (
`photo_filename`,
`photo_caption`,
`photo_description`,
`photo_keywords`,
`category_name`
) VALUES(
'".addslashes($photos_uploaded['name'][$counter])."',
'".addslashes($photo_caption[$counter])."',
'".addslashes($photo_description[$counter])."',
'".addslashes($photo_keyword[$counter])."',
'".addslashes($_POST['category'])."')"
) or die(mysql_error() . 'Photo not uploaded');
$filetype = $photos_uploaded['type'][$counter];
$extention = $known_photo_types[$filetype];
// Store the orignal file
copy($photos_uploaded['tmp_name'][$counter], $images_dir."/".$photos_uploaded['name'][$counter]);
我做错了什么?谢谢你的指示。。。
看起来您正试图将照片保存到主机上的/photos/
目录中。在共享托管环境中,您很可能无法在文件系统的根目录上创建文件夹。
我猜,你有一条类似的线路
$images_dir = '/photos';
您需要将其更改为相对路径,而不是绝对路径:
$images_dir = $_SERVER['DOCUMENT_ROOT'] . '/photos';
您可能还需要创建该文件夹,并确保它具有写入权限。这可以通过命令行完成,如果您有shell访问权限,也可以通过托管提供商提供的管理工具完成。
它适用于WAMP,因为您喜欢使用宽松的权限运行:Apache有权创建或写入C:'photos'
目录