ホームページ > バックエンド開発 > PHPチュートリアル > sqlite - php读取远程图片保存到本地

sqlite - php读取远程图片保存到本地

WBOY
リリース: 2016-06-06 20:23:23
オリジナル
1186 人が閲覧しました

<code>$handle = fopen('http://...图片地址', 'r');
$content = '';
while(!feof($handle)){
    $content .= fread($handle, 8080);
}
fclose($handle);
$sql = "INSERT INTO chat_msg (data) VALUES('$content')";
</code>
ログイン後にコピー
ログイン後にコピー

上文代码insert的时候不能保存。

回复内容:

<code>$handle = fopen('http://...图片地址', 'r');
$content = '';
while(!feof($handle)){
    $content .= fread($handle, 8080);
}
fclose($handle);
$sql = "INSERT INTO chat_msg (data) VALUES('$content')";
</code>
ログイン後にコピー
ログイン後にコピー

上文代码insert的时候不能保存。

你确定要存成base64.....
你说的本地应该是存在某个文件夹吧
直接用write

为什么要存图片,不存地址呢

要使用二进制存储

可能是你$content的大小超出了data字段设置(或默认)的大小

数据库存储图片不都是存储一个图片地址吗???

依照上面的代码$content是二进制文件了,strlen长度估计都要超2万了,估计超出你数据库插入字段的限制了吧.
我觉得你应该是先把图片下载保存到本地,数据库只要存储图片路径就行.暂时没见到直接把文件放到数据的做法.

我擦,你这种写法我不得不说很SB。
请别生气,听我慢慢道来。

<code>$data = file_get_contents('图片网址');
file_put_contents('图片存储的路径和文件名');// 如file_put_contents('./download/test.jpg',$data);
//然后,数据库存储这个图片的存储地址就可以了,例如:
$sql = "INSERT INTO chat_msg (data) VALUES('download/test.jpg')";</code>
ログイン後にコピー

当然,这个文件名每存储一个文件的文件名是不一样的,你自己想办法进行命名,这个我就不多做解释。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート