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后台登录验证问题