从Tmp文件夹移动上传的图像?
我正在按照教程将图像存储到服务器上的文件夹中。
除非我在做这个图像时出错,否则总是先将图像存储到临时文件夹中然后移动。问题是我正在使用共享主机,所以我不知道tmp文件夹在哪里,所以我收到此错误:
无法移动/ tmp / phpfwJ45w上传/ image.jpg
上传设置为777。
是否可以手动设置临时文件夹的路径?例如
https://dummydomain.com/tempuploads/
如果没有,那么如何找到tmp文件夹的完整路径,还是有其他原因导致图像没有上传?
我读过将图像存储到文件夹而不是存储到数据库表中会更好吗?
<?php
include "connect.php";
function UploadOne($fname)
{
$uploaddir = 'http://dummydomain.com/uploads/';
if (is_uploaded_file($fname['tmp_name']))
{
$filname = basename($fname['name']);
$uploadfile = $uploaddir . basename($fname['name']);
if (move_uploaded_file ($fname['tmp_name'], $uploadfile))
$res = "File " . $filname . " was successfully uploaded and stored.<br>";
else
$res = "Could not move ".$fname['tmp_name']." to ".$uploadfile."<br>";
}
else
$res = "File ".$fname['name']." failed to upload.";
return ($res);
}
?>
<body>
<?php
if ($_FILES['picture']['name'] != "")
{
$res = UploadOne($_FILES['picture']);
$filname = $_FILES['picture']['name'];
echo ($res);
}
?>
<h1>UPLOADING FILES</h1>
<form name="fupload" enctype="multipart/form-data" action="uploads.php" method="post">
<input type="file" name="picture" />
<input type="submit" value="Submit" />
</form>
</body>
答案 0 :(得分:1)
您不应将http:// URL指定为$ uploaddir,而应指定相对于运行php脚本的路径的路径。
另外:使用move_uploaded_file()时,您不需要知道tmp文件夹路径,它是由php.ini设置的。阅读here。
答案 1 :(得分:0)
问题不在tmp_folder或smth中。您需要设置$ uploaddir而不使用domainname(它可能是您服务器上的路径):
- $uploaddir = 'http://dummydomain.com/uploads/';
+ $uploaddir = getcwd() . '/uploads/';
它会在运行的文件夹中找到/ uploads /目录。
不要将图像存储在DB中!这不好。 :)