//自动创建文件夹
$file_path="../../img/";
$file_name=date("Ym");
@mkdir($file_path.$file_name,0777);
if($_FILES[uploadpic][name]<>""){
//图片操作 start
global $sAllowSize,$sSaveFileName,$sOriginalFileName;
$sAllowSize = 200;
$uploadDir = "../../img/".$file_name."/";
if(@is_file($_FILES['uploadpic']['tmp_name'])) {
$sOriginalFileName = $_FILES['uploadpic']['name'];
$ExtName = substr($sOriginalFileName,strrpos($sOriginalFileName,".")+1);
if(CheckValidExt($ExtName)) {
if($_FILES['uploadpic']['size'] <= intval($sAllowSize)*1024) {
$sSaveFileName = GetRndFileName($ExtName);
$sFileName = $uploadDir. $sSaveFileName;
if(!@move_uploaded_file($_FILES['uploadpic']['tmp_name'],$sFileName)) {
OutScript("alert('文件上传失败,原因未知。$sFileName')");
exit;
} else {
$newpicname = $file_name."/".$sSaveFileName;
}
}else {
OutScript("alert('你上传的文件总大小超出了最大限制($sAllowSize KB)!')");
exit;
}
}else {
OutScript("alert('请选择有效的上传文件!\\n支持的格式有(.gif .jpg .jpeg)!')");
exit;
}
}else {
switch($_FILES['uploadpic']['error']) {
case 1:
OutScript("alert('你上传的文件总大小超出了php.ini中的最大限制。')");
break;
case 2:
OutScript("alert('你上传的文件总大小超出了最大限制($sAllowSize KB)!')");
break;
case 3:
OutScript("alert('文件只有部分被上传。')");
break;
case 4:
OutScript("alert('没有文件被上传。')");
break;
}
exit;
}
//图片操作 end
} else {
$newpicname = '';
}
这段程序。我在别的服务器上可以顺利上传图片。
昨天换了台服务器。上传时就出现在文件上传失败,原因未知。../img/201001/20100126082656784.jpg这个判断的是在这。
if(!@move_uploaded_file($_FILES['uploadpic']['tmp_name'],$sFileName)) {
OutScript("alert('文件上传失败,原因未知。$sFileName')");
exit;
} else {
$newpicname = $file_name."/".$sSaveFileName;
}请问哪里出问题?是服务器设了不让写入吗?
他有7种情况,而你只处理了4种
如果这文件存在, 就是你php代码写错了还有个要注意的问题
$file_path="../../img/"; //要用相对路径, 这样写容易出错,
//例如 $file_path = ROOT_PATH.'/webroot/img/'
//ROOT_PATH常量是用dirname()在根目录获得的路径
ROOT_PATH=dirname('/');
这样吗.用这个时间不长.不是很懂!!!
upload_tmp_dir C:/php/tmp C:/php/tmp
/user_abc/web/img/
$uploadDir = ROOT_PATH.$file_name."/";
这样写还是一样的错误。。不是写错了。各位大侠。帮一下忙!!
你把前台form也贴出来,最好单独做个页面把链接发过来。
要上溯两个父目录?
if($_FILES[uploadpic][name]<>""){
//图片操作 start
global $sAllowSize,$sSaveFileName,$sOriginalFileName;
$sAllowSize = 200;
$uploadDir = "img/movie/".$file_name."/";
if(@is_file($_FILES['uploadpic']['tmp_name'])) {
$sOriginalFileName = $_FILES['uploadpic']['name'];
$ExtName = substr($sOriginalFileName,strrpos($sOriginalFileName,".")+1);
if(CheckValidExt($ExtName)) {
if($_FILES['uploadpic']['size'] <= intval($sAllowSize)*1024) {
$sSaveFileName = GetRndFileName($ExtName);
$sFileName = $uploadDir. $sSaveFileName;
if(!@move_uploaded_file($_FILES['uploadpic']['tmp_name'],$sFileName)) {
OutScript("alert('文件上传失败,原因未知。$sFileName')");
exit;
}else {
//得到图片名称
$newpicname = $file_name."/".$sSaveFileName;
}
}else {
OutScript("alert('你上传的文件总大小超出了最大限制($sAllowSize KB)!')");
exit;
}
}else {
OutScript("alert('请选择有效的上传文件!\\n支持的格式有(.gif .jpg .jpeg)!')");
exit;
}
}else {
switch($_FILES['uploadpic']['error']) {
case 1:
OutScript("alert('你上传的文件总大小超出了php.ini中的最大限制。')");
break;
case 2:
OutScript("alert('你上传的文件总大小超出了最大限制($sAllowSize KB)!')");
break;
case 3:
OutScript("alert('文件只有部分被上传。')");
break;
case 4:
OutScript("alert('没有文件被上传。')");
break;
}
exit;
}
//图片操作 end
} else {
$newpicname = 'nopic.gif';
}上面是上传图片的操作,
测试地址http://www.tanmoo.com/cate.php