//自动创建文件夹
$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;
}请问哪里出问题?是服务器设了不让写入吗?
解决方案 »
- 我是新手,还没安装上,非常看急!!!!!各位大侠帮帮忙吧!???咋安装不上啊?有用<<PHP 和 MySql Web 开发>>(原书第三版)这本书附带的光盘安装的吗?这没安成功啊,这些东西下载的话,有没有中文网站供下载啊?
- PHP CURL代理如何直接发送gzip数据给用户
- 求救,请问一个调用远程url的问题!
- sql的问题,帮忙解答下
- 关于php5中clone的问题\\\\
- [好简单]晕死!如何判断字符串中是否有 ‘?’字符??
- 我想把excel数据导入到MS sqlserver里
- 提供攻击方法给分100!!!!!!
- 谁有PHP连接数据库的原代码?
- 那么我要在win2000和linux下装mysql需要两个不同的二进制包,是吗?
- 见鬼了,PHP.INI怎么修改都无效
- 求apache一条rewrite规则
他有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