您的位置:首页 > 编程语言 > PHP开发

php&mysql上传文件问题

2013-07-31 00:00 190 查看
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>上传模块</title>
<?
if(!file_exists("shangchuan/")){
mkdir("shangchuan/");
}
?>
</head>

<body>
<form enctype="multipart/form-data" name="form1" method="post">
<input name="upfile" type="file" size="40" />
<label>
<input type="submit" name="Submit" value="上传" />
</label>
<br/>
请上传jpg、gif格式230*230图片,小于2Mb。

</form>
</body>
</html>
<?
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
If (!is_uploaded_file($_FILES["upfile"]["tmp_name"])){echo "图片不存在!";exit;}
$a=$_FILES["upfile"];
$b=$a["type"];
$c=$a["size"];
$d=$a["tmp_name"];
$e=$a["error"];
$f=$a["name"];
$g=pathinfo($f,PATHINFO_EXTENSION);
$type=array("image/gif","image/jpeg");
if(!in_array($b,$type)){
echo "您上传的文件类型不是jpg和gif的,请转换!";exit;
}
if($c>2000000){
echo "您上传的图片大小超过2MB,请调试!";
}
$weizhi=time().".".$g;
move_uploaded_file($d,'shangchuan/'.$weizhi); //

将上传的文件移动到新位置,一般指服务器路径!

echo "<script>alert('上传成功,图片类型为$g,大小为$c');</script>";

}





以下是理解时刻 :)


         $form_data_type = $_FILES ['file'] ['type'];

       $form_data = $_FILES ['file'] ['tmp_name'];

   db_connect ();//连接mysql

 db_select ();//选择数据库

  $fileopen = fopen ( $form_data, "rb" );

      $filesize = filesize ( $form_data );

    $fof = fread ( $fileopen, $filesize );

   $data = addslashes ( $fof );

       fclose ( $form_data );

     $query = "INSERT INTO address_pic (tra_id,pic_type,pic_bin) VALUES ('".$_POST['stra_id']."','$form_data_type','$data')";

    mysql_query ( $query);

数据库结构:CREATE TABLE IF NOT EXISTS `address_pic` (     `tra_id` char(20) NOT NULL,     `pic_type` char(20) default NULL,     `pic_bin` longblob,     PRIMARY KEY  (`tra_id`)  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;     如果用phpmyadmin插入图片完全可以,是以十六进制格式存放。难道非得让我先把图片二进制流转成十六进制再存?会不会是addslashes的问题?     PS:magic_quotes_gpc=off ?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mysql php 文件上传