救救我呀 php 没法上传照片到服务器文件夹里面 谢谢诸位了

<DIVclass=content><TABLEwidth="99%"border=0><TRclass="odd"><formname="form1"method="p... <DIV class=content>
<TABLE width="99%" border=0>
<TR class="odd" >
<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]?>">
<TD width="13%" align="left" colspan="7">
<a href="<?php echo $_SERVER["PHP_SELF"]?>"> [增加新产品展示]</a> <br>
<span style="font-weight: bold">产品展示名称:</span>
<input name="exh_name" type="text" value="<?php echo ($Anorm['exhid'])?$Anorm['exh_name']:''?>" size="10" />

<span style="font-weight: bold">网址:</span> <!-- 网址是惟一的 -->
<input name="site_url" type="text" value="<?php echo ($Anorm['exhid'])?$Anorm['site_url']:'http://'?>" size="40" />
<br/>

<span style="font-weight: bold">描述:</span>
<TEXTAREA NAME="exh_desc" ROWS="3" COLS="20"><?php echo ($Anorm['exhid'])?$Anorm['exh_desc']:''?></TEXTAREA>
<br/>
<span style="font-weight: bold">排序:</span>
<input name="sort_order" type="text" value="<?php echo ($Anorm['exhid'])?$Anorm['sort_order']:50;?>" size="3" /> <!-- 默认排序是50 -->
<span style="font-weight: bold">是否显示:</span>
<?php echo $Stris_showopt;?>
<br/>
<span style="font-weight: bold">L O G O:</span>
<INPUT type="file" name="exh_logo" size="20" /> (注:logo尺寸为 300*300px 支持:.jpg .gif .png 格式)
<INPUT type="hidden" name="old_exh_logo" value="<?php echo ($Anorm['exhid'])?$Anorm['exh_logo']:'';?>" />

<br/>
<input type="hidden" name="action" value="<?php echo ($Anorm['exhid'])?'edit':'add'?>" />
<input type="submit" name="Submit" value="<?php echo ($Anorm['exhid'])?' 编辑产品展示 ':' 增加产品展示 ' ?>" style="background-color: #FFCC66"/>
<input type="hidden" name="exhid" value="<?php echo ($Anorm['exhid'])?$Anorm['exhid']:'0'?>" />
</TD>
</form>
</TR>
<TR class=bg5>
<TD width="15%" align=left>产品展示名称</TD>
<TD width="10%" align=left>LOGO</TD>
<TD width="20%" align=left>网址</TD>
<TD width="35%" align=left>描述</TD>
<TD width="5%" align=left>显示</TD>
<TD width="5%" align=left>排序</TD>
<TD width="10%" align=left>操作</TD>
</TR>
<?php echo $StrtypeAll?>
<TR class=bg5>
<TD colspan="7" align=right><?php echo $showpage = $page->ShowLink();?></TD>
</TR>
</TABLE>

</DIV>
1.这个代码在本地测试的时候,能够把c盘的照片上传到d盘的 WWW里面的指定文件夹里面,

2.但是代码上传到了空间后,就无法上传了,我用很小的 logo 测试也不行,我找了找服务器里面的文件夹,根本就没有上传

3.服务器文件夹也支持可读写了的

有人说是路径解析错误,请问是哪部分代码?希望大家给我帮个忙,谢谢诸位好心人了
展开
 我来答
laolang81
推荐于2016-07-01 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:103万
展开全部
给你一个文件上传程序
<?php
/**
*
* @laolang Administrator
* @version 1.0
* 文件上传类
*/
class FileUpload {
private $filePath;
private $fileField;
private $originName;
private $tmpFileName;
private $fileType;
private $fileSize;
private $newFileName;
//是一个数组,用于保存上传文件允许的文件类型(保存文件后缀名数组)
private $allowType = array('txt','html','php','js','css','jpg','gif','png','doc','swf','rar','zip');
private $maxSize = 10000000000;
private $isUserDefName = false;
private $userDefName;
private $isRandName = false;
private $randName;
private $errorNum = 0;
private $isCoverModer = true;
/* 构造方法,创建上传文件对象时为部分成员属性列表赋初值
参数options: 提供一个数组,数组下标为成员属性名称,元素值为属性设置的值 */

function __construct($options=array()) {
$this->setOptions($options);
}
/* 在对象外部调用该法处理上传文件
参数filefield:提供全局变量数组$_FILES是的第二维数组
返回值: 如果文件上传成功返回True,如果失败则返回False */
function uploadFile($filefield) {
$this->setOption('errorNum',0);
$this->setOption('fileField', $filefield);
$this->setFiles();
$this->checkValid();
$this->checkFilePath();
$this->setNewFileName();
if ($this->errorNum < 0)
return $this->errorNum;
return $this->copyFile();
}
/* 为成员属性列表赋初值 */
/* 参数options: 提供一个数组,数组下标为成员属性名称,元素值即为属性设置的值 */
private function setOptions($options = array()) {
foreach ($options as $key => $val) { //遍历参数数组
if(!in_array($key,array('filePath','fileField','originName','allowType','maxSize','isUserDefName','userDefName','isRandName','randName')))
//检查数组的下标是否和成员属性同名
continue;
$this->setOption($key, $val);
}
}
/* 从$_FILES数组中取值,赋给对应的成员属性 */
private function setFiles() {
if ($this->getFileErrorFromFILES() != 0) {
$this->setOption('errorNum', -1);
return $this->errorNum;
}

$this->setOption('originName', $this->getFileNameFromFILES());

$this->setOption('tmpFileName', $this->getTmpFileNameFromFILES());

$this->setOption('fileType', $this->getFileTypeFromFILES());

$this->setOption('fileSize', $this->getFileSizeFromFILES());
}
/* 为指定的成员属性赋值 */
/* 参数key: 提供保存成员属性名的变量 */
/* 参数val: 提供将要为成员属性赋的值 */
private function setOption($key, $val) {
$this->$key = $val;
}

/* 为上传文件设置新的文件名称 */
private function setNewFileName() {

if ($this->isRandName == false && $this->isUserDefName == false) {
$this->setOption('newFileName', $this->originName);

} else if ($this->isRandName == true && $this->isUserDefName == false) {
$this->setOption('newFileName', $this->proRandName().'.'.$this->fileType);

} else if ($this->isRandName == false && $this->isUserDefName == true) {
$this->setOption('newFileName', $this->userDefName);
} else {
$this->setOption('errorNum', -4);
}
}
/* 检查上传是否有效 */
private function checkValid() {
$this->checkFileSize();
$this->checkFileType();
}
/* 检查上传文件类型是否为允许的类型 */
private function checkFileType() {
if (!in_array($this->fileType, $this->allowType))
$this->setOption('errorNum', -2);
return $this->errorNum;
}
/* 检查上传文件大小是否超出范围 */
private function checkFileSize() {
if ($this->fileSize > $this->maxSize)
$this->setOption('errorNum', -3);
return $this->errorNum;
}
/* 检查保存上传文件的路径是否有效 */
private function checkFilePath() {
if (!file_exists($this->filePath)) {
if ($this->isCoverModer) {
$this->makePath();
} else {
$this->setOption('errorNum', -6);
}
}
}
/* 随机产生上传文件的新文件名称 */
private function proRandName() {
$tmpStr = "abcdefghijklmnopqrstuvwxyz0123456789";
$str = "";
for ($i=0; $i<8; $i++) {
$num = rand(0, strlen($tmpStr));
$str .= $tmpStr[$num];
}
return $str;
}
/* 创建保存上传文件的路径 */
private function makePath() {
if (!@mkdir($this->filePath, 0755)) {
$this->setOption('errorNum', -7);
}
}
/* 将上传文件从临时目录中复制到指定的新位置 */
private function copyFile() {
$filePath = $this->filePath;
if ($filePath[strlen($filePath)-1] != '/') {
$filePath .= '/';
}
$filePath .= $this->newFileName;
if (!@move_uploaded_file($this->tmpFileName, $filePath)) {
$this->setOption('errorNum', -5);
}
return $this->errorNum;
}
/* 从全局变量数组$_FILES中获取上传文件的错误标号 */
private function getFileErrorFromFILES() {
return $this->fileField['error'];
}
/* 获取文件的后缀名 */
private function getFileTypeFromFILES() {
$str = $this->fileField['name'];
$aryStr = split("\.", $str);
$ret = strtolower($aryStr[count($aryStr)-1]);
return $ret;
}
/* 从全局变量数组$_FILES中获取上传文件的名称 */
private function getFileNameFromFILES() {
return $this->fileField['name'];
}
/* 从全局变量数组$_FILES中获取上传文件的临时文件名称 */
private function getTmpFileNameFromFILES() {
return $this->fileField['tmp_name'];
}
/* 从全局变量数组$_FILES中获取上传文件的大小 */
private function getFileSizeFromFILES() {
return $this->fileField['size'];
}
/* 根据错误标号返回对应的错误信息 */
public function getErrorMsg() {
$str = "上传文件出错 : ";
switch ($this->errorNum) {
case -1:
$str .= "未知错误";
break;
case -2:
$str .= "未允许类型";
break;
case -3:
$str .= "文件过大";
break;
case -4:
$str .= "产生文件名出错";
break;
case -5:
$str .= "上传失败";
break;
case -6:
$str .= "目录不存在";
break;
case -7:
$str .= "建立目录失败";
break;
}
return $str;
}
}
//定义上传路径
$tmp = new FileUpload(array('filePath'=>$_POST["dirname"]));
$res = $tmp->uploadFile($_FILES["upfile"]);
if ($res < 0) {
echo $tmp->getErrorMsg().'<br>';
exit;
}
?>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fhquthpdw
2010-07-01
知道答主
回答量:19
采纳率:0%
帮助的人:17.3万
展开全部
问题讲的清楚点呢.PHP有没有设置最大上传文件的大小啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vulcans1981
2010-07-06
知道答主
回答量:13
采纳率:0%
帮助的人:2.2万
展开全部
查查看服务器配置,上传选项
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-07-07
展开全部
你试试把上传的路径输出出来,把图片保存的路径输出出来,看看哪里错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式