當前位置:首頁 » 編程語言 » 文件流php

文件流php

發布時間: 2023-04-05 01:16:51

Ⅰ 求教php如何接收文件流,,ios android上傳的圖片

請問你的客戶端是將數據流編碼了之後傳遞的么?
客戶端可以直接使用流上傳,不需要進行編碼,然後php獲取後直接保存就可以了,如:
$byte = file_get_contents('php://input');
file_put_contents($filename,$byte);

這樣客戶端不用進行處理,直接向伺服器端寫入數據流就可以了。

Ⅱ Apache需要將php文件交給PHP解釋器處理後再 返回給瀏覽器,那PHP如何運行的呢

1.我們從未手動開啟過PHP的相關進程,它是隨著Apache的啟動而運行的;
2.PHP通過mod_php5.so模塊和Apache相連(具體說來是SAPI,即伺服器應用程序編程介面);
3.PHP總共有三個模塊:內核、Zend引擎、以及擴展層;
4.PHP內核用來處理請求、文件流、錯誤處理等相關操作;
5.Zend引擎(ZE)用以將源文件轉換成機器語言,然後在虛擬機上運行它;
6.擴展層是一組函數、類庫和流,PHP使用它們來執行一些特定的操作。比如,我們需要mysql擴展來連接MySQL資料庫
7.當ZE執行程序時可能會需要連接若干擴展,這時ZE將控制權交給擴展,等處理完特定任務後再返還;
8.最後,ZE將程序運行結果返回給PHP內核,它再將結果傳送給SAPI層,最終輸出到瀏覽器上。

Ⅲ php遠端pdf轉文件流

Able2Extract是一款文件轉換工具。可以將PDF、HTML和Text格式的文件中的數據轉換為格式化的Excel表、空早Word文檔、PPT文檔、HTML文檔和text文件。內置有PDF文件瀏覽器。支持多種文字,包括中文、日斗碧雀文、俄文、希臘文等。不需要安裝AdobeAcrobat。專業版除了提供標准版的所有功能,還可以對掃描的或者圖片格式的PDF文件進慧余行轉換。

Ⅳ PHP如何將已經讀取的位元組流文件上傳到指定伺服器

第一種:使用html自帶的file控制項,然後後台通過php提交到伺服器
第二種:使用php自帶的ftp函數上傳到伺服器~

Ⅳ php怎麼發送和接收流文件

<?php
/**php發送流文件
*@paramString$url接收的路徑
*@paramString$file要發送的文件
*@returnboolean
*/
functionsendStreamFile($url,$file){

if(file_exists($file)){

$opts=array(
'http'=>array(
'method'=>'POST',
'header'=>'content-type:application/x-www-form-urlencoded',
'content'=>file_get_contents($file)
)
);

$context=stream_context_create($opts);
$response=file_get_contents($url,false,$context);
$ret=json_decode($response,true);
return$ret['success'];

}else{
returnfalse;
}

}

$ret=sendStreamFile('http://localhost/fdipzone/receiveStreamFile.php','send.txt');
var_mp($ret);
?>

<?php
/**php接收流文件
*@paramString$file接收後保存的文件名
*@returnboolean
*/
functionreceiveStreamFile($receiveFile){

$streamData=isset($GLOBALS['HTTP_RAW_POST_DATA'])?$GLOBALS['HTTP_RAW_POST_DATA']:'';

if(empty($streamData)){
$streamData=file_get_contents('php://input');
}

if($streamData!=''){
$ret=file_put_contents($receiveFile,$streamData,true);
}else{
$ret=false;
}

return$ret;

}

$receiveFile='receive.txt';
$ret=receiveStreamFile($receiveFile);
echojson_encode(array('success'=>(bool)$ret));
?>

Ⅵ 請問通過介面返回的pdf的文件流,怎麼用php把這些文件流轉為pdf文件

直接將文件流內容寫入文件,而文件的後綴名設為 pdf 格式就可以了;PHP 不管保存文件流還是文本,都是用這種方式;

$path="demo.pdf";
$ret=file_put_contents($path,$arr['data']);
if($ret){
echo'保存成功';//然後可以取查看文件
}

Ⅶ php 獲得當前文件輸出流

首先你要了解幾個php函數,下面我列出來

ob_start()函數:打開輸出緩沖區.
函數格式 void ob_start(void)
說明:當緩沖區激活時,所有來自PHP程序的非文件頭信息均不會發送,而是保存在內部緩沖區。為了輸出緩沖區的內容,可以使用ob_end_flush()或flush()輸出緩沖區的內容。

Flush:刷新緩沖區的內容,輸出。
函數格式:flush()
說明:這個函數經常使用,效率很高。

ob_get_contents :返回內部緩沖區的內容。
函數格式:string ob_get_contents(void)
說明:這個函數會返回當前緩沖區中的內容,如果輸出緩沖區沒有激活,則返回 FALSE.

ob_get_length:返回內部緩沖區的長度。
函數格式:int ob_get_length(void)
說明:這個函數會返回當前緩沖區中的長度;和ob_get_contents一樣,如果輸出緩沖區沒有激活,則返回 FALSE.

ob_end_clean:刪除內部緩沖區的內容,並且關閉內部緩沖區
函數格式:void ob_end_clean(void)
說明:這個函數不會輸出內部緩沖區的內容而是把它刪除

ob_end_flush:發送內部緩沖區的內容到瀏覽器,並且關閉輸出緩沖區
函數格式:void ob_end_flush(void)
說明:這個函數發送輸出緩沖區的內容(如果有的話)

ob_implicit_flush:打開或關閉絕對刷新
函數格式:void ob_implicit_flush ([int flag])
說明:默認為關閉緩沖區,打開絕對輸出後,每個腳本輸出都直接發送到瀏覽器,不再需要調用 flush()

是的,正如你看到的,就是利用php緩沖區,當你用ob_start()打開緩沖區的話,則你接下來的輸出,在不會輸出到瀏覽器,而是被緩存到內存上,知道內存被通知輸出獲取處理是,才會有所行動,這樣的話,你完全可以

Ⅷ 介面如何通過PHP將文件以流的方式發送客戶端

1、在有模板的基礎上,針對客戶的定製下載。

2、一些瀏覽器本身能夠表示的文件類型(如txt文件),可以通過將頭信息Content-Type改為header("Content-Type:application/force-download");進行強制下載。

3、對於一些動態生成文件,比如TXT/CSV等文件,將臨時文件及時刪除<?php
/**
*本程序實現了將測試文件[test.pdf]創建副本,並將副本讀入
*內存,以流的方式發送給客戶端瀏覽器,最終刪除副本的操作。
*
*本文可以實現的需求:
*1、在有模板的基礎上,針對客戶的定製下載。
*2、一些瀏覽器本身能夠表示的文件類型(如txt文件),可以通過將頭信息Content-Type
*改為header("Content-Type:application/force-download");進行強制下載。
*3、對於一些動態生成文件,比如TXT/CSV等文件,可以將臨時文件及時刪除
*@authorDensin.Tian@CisternData2015/05/05
*/
//文件名擴展名
$fileExName=".pdf";

//原始文件文件名
$oldFileMainName="testfile";

//獲得時間戳YYYYMMDDHHMISS
$timestamp=date("YmdHis",time());

//新文件名
$newFileName=$oldFileMainName.$timestamp;


//復制文件
if(!($oldFileMainName.$fileExName,$newFileName.$fileExName)){
die("failedto");
}

//設置下載頭信息
header("Content-Type:application/pdf");
header("Content-Disposition:attachment;filename=20150505.pdf");

//文件流輸出到瀏覽器
readfile($newFileName.$fileExName);

//刪除文件
@unlink($newFileFullName);


---------------------

Ⅸ PHP典型模塊與項目實戰大全:PHP文件下載的原理及實現

PHP文件下載的原理及實現

通常文件下載過程是十分簡單的 建立一個鏈接指向到目標文件就可以了 例如下面的鏈接

<a href=// xxx /xxx rar>點擊下載文件</a>

但是 實際情況可能會稍復雜 比如需要用戶填寫完整注冊信息後才可以下載該文件 這時最先想到的是使用Redirect的方式 下面介紹兩種方式

( )用Redirect方式 先檢查表格是否已經填寫完畢和完整 然後將鏈接指到該文件 這樣用戶就可以下載 請看下面的示例代碼

<?php

/*文件功能 檢查變數form是否完整*/

if($form){

//重新定向瀏覽器指向

Header( Location: // // xxx /xxx rar )

exit;

}

?>

( )根據下載文件的序號來查找 鏈接的形式如下

<a href= // xxx /download php?id= >點擊下載文件</a>

上面的鏈接使用ID方式接收要下載文件的編號 然後再用Redirect的方式連接到真實的文件鏈接

以上這兩種方法雖然實現了文件的下載功能 但是缺點是直接暴露了文件所屬的路徑 而且沒有防盜鏈的功能 所以上面的方式是簡單直接但存在安全隱患的文件下載方式 在PHP中 通常是利用header()函數和fread()函數來實現安全的文件下載

例如 需要下載的是一個文件名為xxx rar的文件 首先創建文件是download php的PHP文件 通過前面的例子很容易通過文件的ID號從資料庫中得到待下載文件的真實位置 在獲得文件的真實存儲位置後 可缺培悉以通過header()函數的location參數直接重定向到這個文件 但是這樣仍然是不安全的 因為某些下載軟體還是可以通過重定向分析獲得該文件的位置信息 因此需要用另外一種方法 就是PHP的文件處理API函數 它是通過fread()函數把文件直接輸出到瀏覽器提示用戶下載 這樣所有的處理都是在伺服器端完成的 因此用戶就無法獲得文件具體存儲位置信息的 示例代碼如下

<?

$file_name = xxx rar ; //下載文件名

$file_dir = /up/ ;中纖 //下載文件存放目錄

//檢查文件是否存在

if (! file_exists ( $file_dir $file_name )) {

echo 文件找不到 ;

exit ()

} else {

//打開文件

$file = fopen ( $file_dir $file_name r )

//輸入文件標簽

Header ( Content type: application/octet stream )

Header ( Accept Ranges: bytes )

Header ( Accept Length: filesize ( $file_dir $file_name ) )

Header ( Content Disposition: attachment; filename= $file_name )

//輸出文件內容

//讀取文件內容並直接輸出到瀏覽器

echo fread ( $file filesize ( $file_dir $file_name ) )

fclose ( $file )

exit ()

}

?>

【代碼解讀】

上述代碼中 程序發送Header信息是用來告訴Apache和瀏覽器下載文件的相關信息的 content type的含義代表文件MIME類型是文件流格式 如果在Apache配置裡面把文件的MIME類型設為application/octet stream(如add application/octet stream xxx rar) 那麼瀏覽器(客戶端伏乎)就會知道 這是一個文件流格式的文件並提示用戶下載 Accept Ranges是一個響應頭標 它允許伺服器指明將在給定的偏移和長度處 為資源組成部分的接受請求 該頭標的值被理解為請求范圍的度量單位 Content Length是指定包含於請求或響應中數據的位元組長度 例如 Content Length: Content Disposition:attachment是用來告訴瀏覽器 文件是可以當做附件被下載 下載後的文件名稱為$file_name該變數的值

運行download php文件 效果如圖 所示 從圖中可以看到文件按照預想的方式被提示下載 單擊 保存 按鈕將文件保存在本地

圖 PHP文件安全下載

返回目錄 PHP典型模塊與項目實戰大全

編輯推薦

Java Web開發詳解

PHP Web開發學習實錄

lishixin/Article/program/PHP/201311/21519

熱點內容
早期存儲卡 發布:2024-11-02 14:26:50 瀏覽:988
配音秀緩存在手機哪裡 發布:2024-11-02 14:23:27 瀏覽:294
linux下載gcc 發布:2024-11-02 14:13:47 瀏覽:344
寫演算法交易 發布:2024-11-02 13:57:09 瀏覽:208
安卓怎麼下載鴻蒙 發布:2024-11-02 13:36:13 瀏覽:663
加密狗rsa 發布:2024-11-02 13:20:44 瀏覽:560
實用java教程 發布:2024-11-02 13:07:39 瀏覽:930
ide文件夾 發布:2024-11-02 12:51:37 瀏覽:559
python中字典的用法 發布:2024-11-02 12:40:42 瀏覽:28
安卓怎麼下載zine 發布:2024-11-02 12:40:38 瀏覽:793