PHP:无法上传文件到服务器
哎,我没有太大的PHP编码器PHP:无法上传文件到服务器
我使用以下上传文件到服务器的ACN任何机构帮助我什么是错,此代码
<?php
$uploaddir = './uploads/';
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "http://iphone.zcentric.com/uploads/{$file}";
}
?>
Thanx提前
我没有看到PHP代码有什么问题,虽然没有错误,但很难说出发生了什么。
出头,可能导致上传不工作,并且可能不会返回错误:
-
确保您在表单标签有
enctype="multipart/form-data
:<form enctype="multipart/form-data" action="__URL__" method="POST">
-
确保PHP是通过调整以下PHP ini变量来接受输入:
http://us.php.net/manual/en/ini.core.php#ini.post-max-size http://us.php.net/manual/en/info.configuration.php#ini.max-input-time http://us.php.net/manual/en/ini.core.php#ini.upload-max-filesize
最后,确保权限正确两个临时文件夹上传(http://us.php.net/manual/en/ini.core.php#ini.upload-tmp-dir),并且您将文件移动到文件夹设置。如果它是Windows服务器,则可能会遇到继承问题,这将需要您更改默认的上载目录。
您可以发表什么错误你得到吗?你的代码看起来ok.Here上传文件夹必须留在你的代码运行的目录的上部。然后它应该工作。如果你的脚本文件夹就像这个/test/script/abc.php那么你的上传目录应该是/ t EST /上传。
就是这样。而不是..答案的最后部分是不正确的 – gd1 2011-05-04 14:32:40
iF YOU WANT TO UPLOAD .pdf FILE TO LOCAL SERVER THEN USE THIS SIMPLE METHOD, Lets we are doing code here under Button Click Event...
if (isset($_POST['submit']))
{
if (($_FILES["file"]["type"] =="application/pdf"))
{
if (file_exists("C:/xampplite/htdocs/site/upload/" . $_FILES["file"]["name"]))
echo " This File is already exists in folder";
else
{
move_uploaded_file ($_FILES["file"]["tmp_name"],"C:/xampplite/htdocs/site/upload/" . $_FILES["file"]["name"]);
echo "File have been Stored in:-C:/xampplite/htdocs/site/upload/ " . $_FILES["file"]["name"];
}
}
}//end of click_event
这是一个令人难以置信的,你的解决方案非常方便! – 2013-02-23 09:22:38
index.php
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload[]" id="fileToUpload" multiple="">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
upload.php
<?php
//$target_dir = "uploads/";
/*$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
*/
if(count($_FILES['fileToUpload']['name']) > 0)
{
$i=0;
while($i<count($_FILES['fileToUpload']['name']))
{
$filen = $_FILES["fileToUpload"]['name']["$i"];
$path = 'uploads/'.$filen;
$imageFileType = pathinfo($path,PATHINFO_EXTENSION);
if (file_exists($path)) {
echo "Sorry, file already exists.";
}else if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif") {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
}
else if(move_uploaded_file($_FILES["fileToUpload"]['tmp_name']["$i"],$path))
{
//echo "The file ". basename($_FILES["fileToUpload"]["name"]["$i"]). " has been uploaded.";
$files=$_FILES["fileToUpload"]["name"]["$i"];
echo $files;?><img src="<?php echo $path;?>" style="width:200px;height:200px" alt="" >
<?php
}
$i++;
}
}
?>
您能告诉我们,当你运行该代码会发生什么? ./uploads/目录是否存在*和*可写?代码运行时是否存在$ _FILES ['userfile']?是否有任何PHP错误报告? PS:我不认为basename()是必要的。 – gd1 2011-05-04 14:06:16
是的,我得到一个PHP错误 – 2011-05-04 14:24:05
将它们粘贴到您的问题中,所有这些都完全按照它们的显示。通过使用PHP将文本文件写入该目录,验证./uploads/目录是可写的。我敢打赌,如果你与我们合作,我们可以解决这个问题! :) – gd1 2011-05-04 14:25:12