请问你的客户端是将数据流编码了之后传递的么?
客户端可以直接使用流上传,不需要进行编码,然后php获取后直接保存就可以了,如:
$byte = file_get_contents('php://input');
file_put_contents($filename,$byte);
这样客户端不用进行处理,直接向服务器端写入数据流就可以了。
$str = '<img src=">
从一个目录里获取某类型文件的清单(用在WEB的话一般是jpg/gif/png)->通过随机函数选一个->输出代码。
PHP代码如下:
复制代码 代码如下:
$imglist='';
//用$img_folder变量保存所在目录,必须用“/”结尾
$img_folder = "images/tutorials/";
mt_srand((double)microtime()1000);
//使用目录类
$imgs = dir($img_folder);
//检查目录下是否有,并生成一个清单
while ($file = $imgs->read()) {
if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))
$imglist = "$file ";
} closedir($imgs->handle);
//把清单里的项都放到一个数组里
$imglist = explode(" ", $imglist);
$no = sizeof($imglist)-2;
//生成一个介于0和数量之间的随机数
$random = mt_rand(0, $no);
$image = $imglist[$random];
//输出结果
echo '<img src="'$img_folder$image'" border="0/" alt="" />';
代码很简单,网上都能找到,但在我机子上就是显示不出来,显示出的一直是这个php文件路径,
费了点时间才搞定,原来是我的<php这个标签前面有多的空格,删掉就ok了,细节问题,粗心得很,
真的很无语。
网上查了下,有这样一说:
如果php以,zip,exe等文件输出到浏览器,而前面还输出了其他字符,那就会是你看到的乱码。
应该是输出前有输出空格或其他字符造成的,可以检查一下输出前有没有其他字符,
如果是utf-8编码记得保存为无BOM的文件。
相关代码如下:
class imgdata{
public $imgsrc;
public $imgdata;
public $imgform;
public function getdir($source){
$this->imgsrc = $source;
}
public function img2data(){
$this->_imgfrom($this->imgsrc);
return $this->imgdata=fread(fopen($this->imgsrc,'rb'),filesize($this->imgsrc));
}
public function data2img(){
header("content-type:$this->imgform");
echo $this->imgdata;
//echo $this->imgform;
//imagecreatefromstring($this->imgdata);
}
public function _imgfrom($imgsrc){
$info=getimagesize($imgsrc);
//var_dump($info);
return $this->imgform = $info['mime'];
}
}
$n = new imgdata;
$n -> getdir("1jpg");
$n -> img2data();
$n -> data2img();
使用:
可以从数据库读取地址再输出<img src="" />
以上就是关于求教php如何接收文件流,,ios android上传的图片全部的内容,包括:求教php如何接收文件流,,ios android上传的图片、php 怎样获取文本内容中的图片和文件路径、PHP怎么随机获取一张图片并返回图片网址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)