当前位置:编程学习 > php >>

php文件上传错误分析

<?php header("Content-type:text/html;charset=utf-8"); $database="mr"; $host="localhost"; $pass="root"; $link=mysql_connect($host,$pass,"") or die("数据库连接失败!".mysql_error()); mysql_select_db($database,$link) or die("没有数据库:".$database.mysql_error()); mysql_query("set names 'utf8'"); $cover=$_POST["cover"]; //echo $cover; if($_POST["sub"]==true){ $fp=fopen($cover,"rb"); $images=addslashes(fread($fp,filesize($cover))); $sql="insert into file(id,images) values ('',$images)"; $result=mysql_query($sql); } ?> 运行后出现错误: Warning: fopen(0810322552249李思琼.jpg) [function.fopen]: failed to open stream: No such file or directory in E:\wamp\www\MR\04\223\index_ok.php on line 12 Warning: filesize() [function.filesize]: stat failed for 0810322552249李思琼.jpg in E:\wamp\www\MR\04\223\index_ok.php on line 13 Warning: fread() expects parameter 1 to be resource, boolean given in E:\wamp\www\MR\04\223\index_ok.php on line 13
补充:我这种方法是将图片存储到数据库而不是存储到客户端文件夹下
答案:一般图片都存放在本地硬盘中,这样可以减轻服务器传输的负担。具体如下:
/* ------------------ html ------------------ */
<form class="m_form" name="regForm" action="" method="post">
   <table class="m_tbl">
  <tr>
    <td class="m2">用户头像:</td><td><input type="file" name="userImg" value="浏览" /></td><td></td>
  </tr>
  </table>
</form>
/* ------------------ php ------------------ */
//上传用户头像
    function uploadImg(){
    	//客户端机器文件的原名称
		$userFile = $_FILES['userImg'];
		echo "userfile-->>".$userFile."<br/>";

		//文件被上传后在服务端储存的临时文件名
		$tmp_file = $_FILES['userImg']['tmp_name'];
		echo "tmp_file-->>".$tmp_file."<br/>";

		$file_dir = "../../photos/";
		$uploadfile = $file_dir . basename($_FILES['userImg']['name']);

		echo "upLoadFile-->>".$uploadfile."<br/>";
/* 将上传文件移至photos文件夹中		
$a = move_uploaded_file($tmp_file, $uploadfile);
		if($a == true){
			echo "上传成功!<br/>";
			return $uploadfile;
		}else{
			echo "上传失败!<br/>";
		}
*/
    }
//上传用户头像
function insertImg(){
	$userImg = uploadImg();
    	$sql = "INSERT INTO lu_user(userImg) VALUES(?);";
		$stmt = $mysqli->prepare($sql);
		$stmt->bind_param("s",$userImg);
		$stmt->execute();
		$rows = $stmt->affected_rows;

		if ($rows > 0){
			echo "成功!<br/>";		}else{
			echo "失败!<br/>";
		}
}
插到库中的图片路径->$uploadfile;
"../../photos/图片名.jpg"
其他:文件上传应该用 $_FILE吧 你这种上传方式,没太整明白,你把图片放到数据库,这样做基本都不采用.
一般是保存图片到硬盘,数据库里面存放路径的.
上传文件我空间有这方面文档:
http://hi.zhaoxi.net/stclair2201/blog/item/07d939223497be56ad34de08.html 我是一个初学者  我想问的是:你是想把图片存在数据库里边 还是要把图片名字存储在数据库里   这位同仁的回答也是我要说的  上传图片使用$_FILES['upload']接受吧   如果想讨论  加761084316

上一个:php 我想把复选框的内容插到mysql中 一次往一个字段中插入多个选项怎么做
下一个:PHP后台登录验证问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,