从Tmp文件夹移动上传的图像?

时间:2014-02-01 22:30:16

标签: php upload

从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> 

2 个答案:

答案 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中!这不好。 :)