PHP上传文件失败

formaction=""enctype="multipart/form-data"method="post"name="uploadfile">上传文件:<inputt... form action="" enctype="multipart/form-data" method="post" name="uploadfile">
上传文件:<input type="file" name="upfile" /><br>
<input type="submit" value="上传"/></form>

<?php

if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];

//获取数组里面的值
$name=$upfile["name"];//上传文件的文件名
$type=$upfile["type"];//上传文件的类型
$size=$upfile["size"];//上传文件的大小
$tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径
//判断是否为图片

switch($type){

case'image/pjpeg':$okType=true;
break;
case'image/jpeg':$okType=true;
break;
case'image/gif':$okType=true;
break;
case'image/png':$okType=true;
break;
}

if($okType){
/*
0:文件上传成功
1.超过了文件大小,在php.ini文件中设置
2.超过了文件的大小MAX_FILE_SIZE选项制定的值
3.文件只有部分被上传
4.没有文件被上传
5.上传文件大小为0
*/

$error=$upfile["error"];//上传后系统返回的值
echo "==============<br/>";
echo "上传文件名称是:".$name."<br/>";
echo "上传文件类型是:".$type."<br/>";
echo "上传文件大小是:".$size."<br/>";
echo "上传后系统返回的值是:".$error."<br/>";
echo "上传文件的临时存放路径是:".$tmp_name."<br/>";

echo "开始移动上传文件<br/>";
//把上传的临时文件移动到up目录下面
move_uploaded_file($tmp_name,'upload/'.$name);
$destination="up/".$name;
echo "==========<br/>";
echo "上传信息:<br/>";
if($error==0){
echo "文件上传成功啦!";
echo "<img src=".$destination.">";
}else if($error==1){
echo "超过了文件大小,在php.ini文件中设置";
}else if($error==2){
echo "超过了文件的大小MAX_FILE_SIZE选项制定的值";
}else if($error==3){
echo "文件只有部分被上传";
}else if($error==4){
echo "没有文件被上传";
}else{
echo "上传文件大小为0";
}

}else{
echo "请上传jpg,gif,png等格式的图片!";
}
}
?>

报错:
上传文件名称是:u=1721667553,717956976&fm=21&gp=0.jpg
上传文件类型是:image/jpeg
上传文件大小是:6410
上传后系统返回的值是:0
上传文件的临时存放路径是:C:\WINDOWS\temp\php2F9.tmp
开始移动上传文件

Warning: move_uploaded_file(upload/u=1721667553,717956976&fm=21&gp=0.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\myenv\apache\htdocs\upload\shangchuan.php on line 49

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\temp\php2F9.tmp' to 'upload/u=1721667553,717956976&fm=21&gp=0.jpg' in C:\myenv\apache\htdocs\upload\shangchuan.php on line 49
==========
上传信息:
文件上传成功啦!
展开
 我来答
匿名用户
推荐于2016-02-24
展开全部

提示显示的很清楚的。文件已经上传了,但是在把文件从临时文件夹移出来出错了。注意新地址是否正确

可以使用绝对路径或者相对路径,看个人http://www.hi-docs.com/php/move_uploaded_file.html

匿名用户
2015-03-17
展开全部
请注意<form enctype="multipart/form-data"......>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
值得注意的是文件upload_file_post.php中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。
追问
学PHP还是很要研究的功夫的...

好多不懂的函数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式