php做伺服器,接受用戶端上傳的檔案,伺服器是怎麼接收的

來源:互聯網
上載者:User
我們用C++在本地寫的用戶端,然後想用PHP在伺服器端寫個程式把這個檔案接受儲存,是不是在伺服器要寫個監聽程式,還是要怎麼來把他們連結起來實現資料轉送


回複討論(解決方案)

用 post 方式加 multipart/form-data 頭
php 會自動識別上傳的檔案

如果用 put 方式,則需在 平衡品端從 php://input 資源讀取檔案內容

用 post 方式加 multipart/form-data 頭
php 會自動識別上傳的檔案

如果用 put 方式,則需在 平衡品端從 php://input 資源讀取檔案內容 能不能寫幾行具體的代碼,PHP我也是剛開始學新手,謝謝了

if(isset($_FILES['上傳時指定的變數名']['tmp_name')) {  move_uploaded_file($_FILES['上傳時指定的變數名']['tmp_name'], '目標檔案名');}else {  $s = file_get_contents('php://input');  if($s) {    file_put_contents('目標檔案名', $s);  }}

用 post 方式加 multipart/form-data 頭
php 會自動識別上傳的檔案

如果用 put 方式,則需在 平衡品端從 php://input 資源讀取檔案內容 我這裡有個程式,我不懂人家這個

if($_SERVER["REQUEST_METHOD"]=="POST")
{
//上傳最大檔案的大小。
$MAX_SIZE = 20000000;
echo $MAX_SIZE;
//設定允許的 Mime 類型.
$FILE_MIMES = array('image/jpeg','image/jpg','image/gif'
,'image/png','application/msword','text/plain','application/octet-stream','application/x-zip-compressed');

//設定允許的檔案類型。請按照格式添加。
$FILE_EXTS = array('.zip','.jpg','.png','.gif','.doc','.txt','.rar','zip');


/************************************************************
* 設定變數
************************************************************/
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = "files/";
$upload_url = $url_dir."/files/";
$message ="";

/************************************************************
* 建立上傳目錄
************************************************************/
if (!is_dir("files")) {
if (!mkdir($upload_dir))
die ("upload_files directory doesn't exist and creation failed");
if (!chmod($upload_dir,0755))
die ("change permission to 755 failed.");
echo $upload_dir;
}

/************************************************************
* 使用者請求進程,下面所有用到的 upfile 需要與VC用戶端一致,可以批量替換。見HotpimUploadDlg.cpp第224行。
************************************************************/


if ($_FILES['upfile'])
{
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]"
.$_FILES['upfile']['name']." "
.$_FILES['upfile']['type']."\n");
fclose($resource);

$file_type = $_FILES['upfile']['type'];
$file_name = $_FILES['upfile']['name'];
$file_ext = substr($file_name,strrpos($file_name,"."));

//檔案大小檢查
if ( $_FILES['upfile']['size'] > $MAX_SIZE)
$message = "The file size is over 2MB.";
//檔案類型/副檔名檢查
else if (!in_array($file_type, $FILE_MIMES) && !in_array($file_ext, $FILE_EXTS) )
$message = "Sorry, $file_name($file_type) is not allowed to be uploaded.";
else
$message = do_upload($upload_dir, $upload_url);
}

else if (!$_FILES['upfile']);
else
$message = "Invalid File Specified.";

}
function do_upload($upload_dir, $upload_url)
{
$temp_name = $_FILES['upfile']['tmp_name'];
$file_name = $_FILES['upfile']['name'];
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;

//檔案名稱字檢查
if ( $file_name =="") {
$message = "Invalid File Name Specified";
return $message;
}

$result = move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0755))
$message = "change permission to 755 failed.";
else
$message = ($result)?"$file_name uploaded successfully." :
"Somthing is wrong with uploading a file.";
return $message;
}
?>

這個是標準的檔案上傳程式,建議去看看php手冊就明白了。

建議看看手冊 $_FILES 有說明有例子

嗯謝謝各位了,我繼續去看看PHP手冊

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.