我們用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手冊