<?php
$con=mysql_connect("localhost","root","") ;
mysql_query("SET NAMES GBK");
mysql_select_db("Image",$con) ;$filename=$_FILES['file'];
$PSize = $filename["size"];
echo $PSize."<br/>";$mysqlPicture = addslashes(fread(fopen($filename, "rb"), $PSize));
If(!empty($mysqlPicture)) {
    mysql_query("INSERT INTO pic (pict)  VALUES ('$mysqlPicture')")or die("asd");
} else {
    echo "You did not upload any picture";
}
//   插入到MYSQL数据库
?>
现在报错是fread有问题我都快郁闷死了

解决方案 »

  1.   

    $mysqlPicture = addslashes(fread(fopen($filename['tmp_name'], "rb"), $PSize));
    这样试试?
      

  2.   

    <?php
    $con=mysql_connect("localhost","root","") ;
    mysql_query("SET NAMES GBK");
    mysql_select_db("Image",$con) ;//要用上传的临时文件名
    $filename = $_FILES["file"]["tmp_name"];$PSize = $_FILES["pictures"]["size"];
    echo $PSize."<br/>";$mysqlPicture = addslashes(fread(fopen($filename, "rb"), $PSize));
    If(!empty($mysqlPicture)) {
    mysql_query("INSERT INTO pic (pict) VALUES ('$mysqlPicture')")or die("asd");
    } else {
    echo "You did not upload any picture";
    }
    // 插入到MYSQL数据库
    ?>
      

  3.   

    上面写错了
    <?php
    $con=mysql_connect("localhost","root","") ;
    mysql_query("SET NAMES GBK");
    mysql_select_db("Image",$con) ;//要用上传的临时文件名
    $filename = $_FILES["file"]["tmp_name"];$PSize = $_FILES["file"]["size"];
    echo $PSize."<br/>";$mysqlPicture = addslashes(fread(fopen($filename, "rb"), $PSize));
    If(!empty($mysqlPicture)) {
        mysql_query("INSERT INTO pic (pict) VALUES ('$mysqlPicture')")or die("asd");
    } else {
        echo "You did not upload any picture";
    }
    // 插入到MYSQL数据库
    ?>
      

  4.   

    echo $PSize是多少?
    echo $mysqlPicture有没有数据?
      

  5.   

    $PSize
    下面是乱码71189
    ?郳0JFIF\0\0`\0`\0\0?Photoshop 3.0\08BIM?Resolution\0\0\0\0\0`\0\0\0\0\0`\0\0\0\08BIM FX Global Lighting Angle\0\0\0\0\0\0\0x8BIMFX Global Altitude\0\0\0\0\0\0\08BIM?Print Flags\0\0\0 \0\0\0\0\0\0\0\0\08BIM Copyright Flag\0\0\0\0\0\08BIM\'Japanese Print Flags\0\0\0\0 \0\0\0\0\0\0\0\08BIM?Color Halftone Settings\0\0\0H\0/ff\0\0lff\0\0\0\0\0\0\0/ff\0\0歕0\0\0\0\0\0\02\0\0\0\0Z\0\0\0\0\0\0\0\0\05\0\0\0\0-\0\0\0\0\0\0\0\08BIM?Color Transfer Settings\0\0\0p\0\0鑌0\0\0\0鑌0\0\0\0鑌0\0\0\0鑌0\08BIMGuides\0\0\0\0\0\0\0\0\0@\0\0@\0\0\0\08BIM URL overrides\0\0\0\0\0\0\08BIMSlices\0\0\0\0u\0\0\0\0\0\0\0\0\0\0\0\0\0X\0\0 \0\0\0 \0U\0n\0t\0i\0t\0l\0e\0d\0-\02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0X\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\08BIMICC Untagged Flag\0\0\0\08BIMLayer ID Generator Base\0\0\0\0\0\08BIM New Windows Thumbnail\0\0 o\0\0\0\0\0\0p\0\0\0T\0\0P\0\0n@\0\0 S\0\0?郳0JFIF\0\0H\0H\0\0頫0Adobe\0d€\0\0\0踈0刓0            繺0\0T\0p\"\0輁0\0??\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0 \0 3\0!1AQa\"q?憽盉#$R羈34r傃C%扴疳馽s5⒉?D揟dE拢t6襏鈋虺劽觰泱F\'敜叴暷凿籁蹬斟鮒fv問Χ浦骣7GWgw嚄Х亲琪\05\0!1AQaq\"2亼”B#罵佯3$b醨倰CScs4?⒉?&5乱D揟?dEU6te怛硠糜u泱F敜叴暷凿籁蹬斟鮒fv問Χ浦骣\'7GWgw嚄Х?赲0 \0\0?\0纄j蚻?1猁\\?蟘鼱??B`槐臙祴▍pW尸ツ9;I?额?东觖???5掃侳璔毴1猊?%?迻狥?蛾湹%Ph经S 紩⑸H癨0?8磎lh[Z縞UK[)翷Y\"缲蒛琤斜姵隢鈐?校昡?e?畉z€涎呦??ゼI#h<慰蒣?|?X,{\\珠?鳕辨5R/Xqlo埯Z賍XNNSK€m6隮?餶/?煶g覼?椊瑇xc痘i?_绳Z骝q[?[澓?亙龙S*絆搏eN,{xp歃? G@燎?D鼧﨨榨M?u趝?菇t褣BUa嫎Zu櫬=糜衖 ???啙帽?榰Teu?礏?I?袔臯段赊宀DQ孬X?\0橞~┾i?5[成V?t?捡??V偭块w墸煎g ]\"\0#紭?貽脲倉?N;n???{酱?耹?湫k=?8?{p?\0t?蚢顖2歿?給 r?嗎黁^???頛<ず3G?佫f?郞/Xl╀5?侤%??ら \0瓶?YS?.?髦爭徽?$e燍洳懠G?\0絚笋綡is\'宑Q\0?嶔済?乙D?VE€竾箯 g@纊?5y\0肜C:咍\0趴g趽>眜€A?讈C琨ZY\0M3?氾?黲?1他?r墬鳴z?\\篰Hv鈛纵硝?勃丮a釠k.?K濣韏聎?軁?廫0H:︱ k ?%遲mV1蛸?辄g懌寣?蝄'絝c磔?∟??娔???}躇姙8\0荸撱Q?!?]僖傡℡??奵?倄?Z2??逾影孧g7?\0??@_~暵愆A?1%i? 覞zaV殪O祟羬?}﹢ズ ?オoJw?oS蝻堎ZWPS区岽4E喇>a喪wq盂鐏i畠痡S? ?欲0”B+臃銇-袣 B慧狕p%?莽Jd??盫?灴FlPn涰踈"桍镞jcJ陃?Pq>il ?穪4?隯桽矩诖E峱*?乢?嘡澘?唸瘒伮??#璿?)厞襥?_,愺b]?~=?鵰?v<曉靭{猸m虔嚩E47=(|G鹌譀命鷃浯?6脎鹮 擀?[S
      

  6.   

    INSERT INTO pic (pict) VALUES ('adfasdf')
    这句拿到数据库里面能够运行,并插入数据吗?
      

  7.   

    我的所有文件是:upload.php
    源码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
    <html xmlns="http://www.w3.org/1999/xhtml">   
    <head>   
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />   
    <title>上传</title>   
    </head>   
      
    <body>   
    <form action="newfile.php" method="post" enctype="multipart/form-data" name="form1" id="form1">   
      <p> </p>   
      <p>   
        <label></label>   
        <label>   
        <input type="file" name="file"  />   
        </label>   
      </p>   
      <p>   
        <label>   
        <input type="submit" name="Submit" value="提交" />   
        </label>   
      </p>   
      <p> </p>   
    </form>   
    </body>   
    </html>  
    还有操作文件:
    <?php
    $con=mysql_connect("localhost","root","") ;
    mysql_query("SET NAMES GBK");
    mysql_select_db("Image",$con) ;
    $filename = $_FILES["file"]["tmp_name"];$PSize = $_FILES["file"]["size"];
    echo $PSize."<br/>";$mysqlPicture = addslashes(fread(fopen($filename, "rb"), $PSize));//$mysqlPicture='0x'.bin2hex($filename);
    //$mysqlPicture = addslashes(fread(fopen($mysqlPicture, "r"), $PSize));
    echo $mysqlPicture."<br/>";;If(!empty($mysqlPicture)) {
    mysql_query("INSERT INTO pic (pict)  VALUES ('$mysqlPicture')")or die("asd");
    } else {
    echo "You did not upload any picture";
    }
    //   插入到MYSQL数据库?>
      

  8.   

    你的数据库中pic表的pict字段得是binary类型的,然后再将insert语句放在数据库中直接运行,确保没问题之后再放到php程序中。
      

  9.   

    你确认过二进制数据可以插入吗?
    INSERT INTO pic (pict) VALUES ('JFIF\0\0`\0`\0\0?Photoshop');如果可以那么应该没有问题。
      

  10.   

    我这个问题弄了两天了,从数据库里可以直接插入二进制,但从php中就不行了郁闷死了
      

  11.   

    试试小一点的图片,50k内,具体忘了上限了或者字段换成mediumblod试试?
      

  12.   

    mysql_query("insert into pic (`pic_content`) values ('asdf')")or die("错误");
    我现在从php中这样插入都有问题了
    结果:错误
      

  13.   

    现在还是那个问题,别的都能插入就是得到图片的那个变量$mysqlPicture查不进去
      

  14.   

    不要自行处理错误!mysql_query("insert into pic (`pic_content`) values ('asdf')")or die(mysql_error());
      

  15.   

    你单独做一个输出文件不要混杂在别的html代码中输出指定输出图片。这些乱码应该就是插入成功了
      

  16.   

    比如 gif格式的前面不要输出
    Header("Content-type: image/gif");查数据库,echo 二进制字段的内容看看后面也别输出
      

  17.   

    我直接把二进制插入时提示:有可能您发现了 SQL 分析器的臭虫。请仔细检查您的查询,包括引号是否正确及是否匹配。其它可能的失败原因可能由于您上传了超过引用文本区域外的二进制数据。您还可以在 MySQL 命令行界面试一下您的查询。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。如果您仍然有问题,或者命令行界面执行成功而分析器出错,请将您的 SQL 查询缩减到导致问题的某一条语句,然后和下面剪切区中的数据一起提交一个臭虫报告:
      

  18.   

    我说你单独建一个文件这个文件用来输出字段内容格式大概如下,,,当然,如果不是gif你相应换一下,
    因为你在实验,所以,如果不行,你换一行数据,再试试
    <?php
    Header("Content-type: image/gif");
    中间数据库查询,就找一个字段
    把图片字段echo出来
    ?>
      

  19.   

    $mysqlPicture = addslashes(fread(fopen($filename, "rb"), $PSize));
    我在下面加了转换就存进去了,
    $mysqlPicture='0x'.bin2hex($mysqlPicture);
    我存入的是4k的图片,但在数据库中为9k为什么
      

  20.   

    你都bin2hex了,当然数据大小和原来不一样了。
      

  21.   

    mysql_query("INSERT INTO pic (pict) VALUES ($mysqlPicture)")or die("asd");
      

  22.   

    $filename = $_FILES["file"]["tmp_name"];
    是这个吗,好像是
    $filename = $_FILES["file"]["name"];
    这个吧?
      

  23.   

    <?php
    $con=mysql_connect("localhost","root","") ;
    mysql_query("SET NAMES GBK");
    mysql_select_db("Image",$con) ;//要用上传的临时文件名
    $filename = $_FILES["file"]["tmp_name"];$PSize = $_FILES["pictures"]["size"];
    echo $PSize."<br/>";$mysqlPicture = addslashes(fread(fopen($filename, "rb"), $PSize));
    If(!empty($mysqlPicture)) {
        mysql_query("INSERT INTO pic (pict) VALUES ('$mysqlPicture')")or die("asd");
    } else {
        echo "You did not upload any picture";
    }
    // 插入到MYSQL数据库
    ?>