Heim > Backend-Entwicklung > PHP-Tutorial > iOS-Schnittstelle, wie lade ich mehrere Bilder stapelweise in PHP herunter?

iOS-Schnittstelle, wie lade ich mehrere Bilder stapelweise in PHP herunter?

WBOY
Freigeben: 2016-09-21 14:12:54
Original
1087 Leute haben es durchsucht

iOS-Schnittstelle, mehrere Bilder werden stapelweise heruntergeladen. iOS übergibt mir die ID jedes Bildes, aber mein Download kann nur einmal ausgeführt werden (die iOS-Schnittstelle wird später verwendet, und dies ist derzeit der Fall). wird auf der Webseite debuggt)?
Der Code lautet wie folgt:
public function index(){

<code>$download =array(
        0=>3,
        1=>5,
    );
    foreach($download as $dow_v){
        //查找数据库中的图片信息
        $dow_arr = D('Upload') -> where(array('up_id' => $dow_v)) -> find();
        //文件名截取
        $file_name = substr($dow_arr['upload_url'], strrpos($dow_arr['upload_url'],'/')+1);</code>
Nach dem Login kopieren
Nach dem Login kopieren

//Dateipfad

<code>        $file_path=$dow_arr['upload_url'];
        $xinxi = $this->download($file_name,$file_path);
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

//So laden Sie Dateien herunter

<code> public function download($file_name='',$file_path=''){
    //获取下载文件的大小
    $file_size=filesize($file_path);
    //             打开文件,并判断是否存在
    $fp = fopen($file_path,"r") or exit("文件不存在");
    //返回的文件     http协议信息
    header("Content-type:application/octet-stream");
    //按照字节大小返回
    header("Accept-Ranges:bytes");
    //返回文件大小
    header("Accept-Length:$file_size");
    //这里客户端的弹出对话框
    header("Content-Disposition:attachment;filename=".$file_name);
    //向客户端回送数据
    $buffer=1024;
    //为了下载的安全。我们最后做一个文件字节读取计数器
    $file_count=0;
        
    //判断文件是否结束
    while(!feof($fp)&&($file_size-$file_count>0)){
        $file_data=fread($fp,$buffer);
        //统计读了多少个字节
        $file_count+=$buffer;
        //把部分数据回送给浏览器
        echo $file_data;
    }
    fclose($fp);
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Antwortinhalt:

iOS-Schnittstelle, mehrere Bilder werden stapelweise heruntergeladen. iOS übergibt mir die ID jedes Bildes, aber mein Download kann nur einmal ausgeführt werden (die iOS-Schnittstelle wird später verwendet, und dies ist derzeit der Fall). wird auf der Webseite debuggt)?
Der Code lautet wie folgt:
public function index(){

<code>$download =array(
        0=>3,
        1=>5,
    );
    foreach($download as $dow_v){
        //查找数据库中的图片信息
        $dow_arr = D('Upload') -> where(array('up_id' => $dow_v)) -> find();
        //文件名截取
        $file_name = substr($dow_arr['upload_url'], strrpos($dow_arr['upload_url'],'/')+1);</code>
Nach dem Login kopieren
Nach dem Login kopieren

//Dateipfad

<code>        $file_path=$dow_arr['upload_url'];
        $xinxi = $this->download($file_name,$file_path);
    }
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

//So laden Sie Dateien herunter

<code> public function download($file_name='',$file_path=''){
    //获取下载文件的大小
    $file_size=filesize($file_path);
    //             打开文件,并判断是否存在
    $fp = fopen($file_path,"r") or exit("文件不存在");
    //返回的文件     http协议信息
    header("Content-type:application/octet-stream");
    //按照字节大小返回
    header("Accept-Ranges:bytes");
    //返回文件大小
    header("Accept-Length:$file_size");
    //这里客户端的弹出对话框
    header("Content-Disposition:attachment;filename=".$file_name);
    //向客户端回送数据
    $buffer=1024;
    //为了下载的安全。我们最后做一个文件字节读取计数器
    $file_count=0;
        
    //判断文件是否结束
    while(!feof($fp)&&($file_size-$file_count>0)){
        $file_data=fread($fp,$buffer);
        //统计读了多少个字节
        $file_count+=$buffer;
        //把部分数据回送给浏览器
        echo $file_data;
    }
    fclose($fp);
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

php muss nur den Pfad des herunterzuladenden Bildes an iOS zurückgeben. Ich habe zuvor einen Fehler gemacht, da das Bild über den Client heruntergeladen wird, sodass ich nur den Pfad zurückgeben und das Bild auf iOS herunterladen muss! ! ! ! (Das Problem wird komplizierter)

Beim Herunterladen kann nur ein Bild zurückgegeben werden.
Wie viele Bilder und Schnittstellen können für iOS angepasst werden?

Wenn es mehrere Dateien gibt, können Sie diese einfach durchlaufen. Ich habe das Gefühl, dass das Problem nicht ganz klar ist.
Ich verstehe nicht, was meinst du damit, dass du es nur einmal herunterladen kannst?
Vielleicht willst du dieses github.com/JeanWolf/httpclient
Diese Bibliothek kann eine ähnliche gleichzeitige Verarbeitung mehrerer Anfragen erreichen

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage