其實(shí)比較簡單。代碼給你,表單的NAME 我改了
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、鼓樓ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的鼓樓網(wǎng)站制作公司
?php
if($_SERVER['REQUEST_METHOD']=="POST"){
$cust=$_POST['cust'];
$hobby=$_POST['hobby'];
}
$data='d:\www\data.txt';
$cont="用戶:".$cust."\t"."愛好:".$hobby."\r\n";
if($cust!=""){
$fh=fopen($data,"a+");
fwrite($fh,$cont);
}
fclose($fh);
echo "成功";
?
php接收二進(jìn)制文件怎么替換里面的內(nèi)容
php接收二進(jìn)制文件如下:
?php
header('Content-type: text/html; charset=utf-8');
error_reporting(0);
$filename = $_GET["filename"];
$filesize = $_GET["filesize"];
$xmlstr = $GLOBALS[HTTP_RAW_POST_DATA];//$_POST["data"];//
if(empty($xmlstr)) $xmlstr = file_get_contents('php://input');
$raw = $xmlstr;//得到post過來的二進(jìn)制原始數(shù)據(jù)
$file = fopen("./upload/".$filename,"w");//打開文件準(zhǔn)備寫入
fwrite($file,$raw);//寫入
fclose($file);//關(guān)閉
?
接收的二進(jìn)制文件中非標(biāo)準(zhǔn)字符(0x7F)的字節(jié)被替換為三個字節(jié),比如E2替換為EF 9F A2
現(xiàn)在我想在Php接收到文件之后還原回去,把EF 9F A2替換為E2,請問這個怎么實(shí)現(xiàn)?
非常感謝!
PHP 二進(jìn)制
------解決方案--------------------
他的數(shù)據(jù)轉(zhuǎn)換規(guī)則是這樣的:
文件頭不變,文件頭多長不清楚,圖上到0050h都一樣的
=7F的字節(jié),因?yàn)閡tf-8也一樣,可以認(rèn)為也轉(zhuǎn)換了utf-8
=80的字節(jié),高位加上F7,再轉(zhuǎn)utf-8,例如E2就變成F7E2然后轉(zhuǎn)utf-8成為EF 9F A2
至少他圖中E2/FB/91/B2/81...都滿足這個規(guī)則
------解決方案--------------------
本帖最后由 xuzuning 于 2013-05-02 15:35:02 編輯
用正則可這樣寫
假定數(shù)據(jù)已把存在變量 $s 中,則
$s = preg_replace_callback('/[\xef]../', 'foo', $s);
function foo($r) {
$c = (ord($r[0]{1}) 0x03) 6;
$c += (ord($r[0]{2}) 0x3f);
return chr($c);
}
不知你是否說的是 elment-ui框架的 el-upload 組件,如果是的話,可按如下步驟實(shí)現(xiàn):
首先在vue文件中定義一段 el-upload代碼段,如下圖:定義一個http-request屬性
el-upload上傳組件代碼
在http-request屬性中調(diào)用一個定義的方法,方法中執(zhí)行圖片上傳到php后端的操作,可以用 axios 調(diào)用php后端api執(zhí)行上傳,注意上傳文件之前要 new FormData(),因?yàn)槭潜韱紊蟼?,將文?append到 formData中。
上傳組件調(diào)用方法
php后端接口就能接收到數(shù)據(jù)了,就可以用 $__FILE['filename'] 這樣的格式來接收到數(shù)據(jù)了
以上就是 el-upload組件和php進(jìn)行交互的步驟,如果覺得有用請 采納并點(diǎn)個關(guān)注!
跟正常接收數(shù)據(jù) 是一樣的 ,
$.ajax({
type: 'POST',
url: url
,
data: data
,
success: success
,
dataType: dataType
});
這里 ajax 使用 POST 類型提交,php 就用 $_POST 接收。
if (!$_FILES['file']['error']) {
? ? ? ? //判斷是否有uploads目錄,沒有則創(chuàng)建這個目錄
? ? ? ? if (!is_dir('appdownload')) {
? ? ? ? ? ? mkdir('appdownload');
? ? ? ? }
? ? ? ? $name= isset($_FILES['file']['name'])?$_FILES['file']['name']:"";
? ? ? ? $size=isset($_FILES['file']['size'])?$_FILES['file']['size']:'';
? ? ? ? $type=isset($_FILES['file']['type'])?$_FILES['file']['type']:'';
? ? ? ? $ext = substr($name, strrpos($name, '.')+1);
? ? ? ? $up_name=date("Ymdhis").'.'.$ext;
? ? ? ? $path_in_folder = 'appdownload/'.$up_name;
? ? ? ? move_uploaded_file($_FILES['file']['tmp_name'], $path_in_folder);
? ? ? ? //獲取文件名,創(chuàng)建文件放置的位置
? ? ? ? //$filepath = 'appdownload/' . $_FILES['file']['name'];
? ? ? ? //將臨時文件移動到指定位置
? ? ? ? //move_uploaded_file($_FILES['file']['tmp_name'], $filepath);
? ? ? ? $file = fopen($path_in_folder, "r");
? ? ? ? $userdata = [];
? ? ? ? while (!feof($file)) {
? ? ? ? ? ? $tempdata = fgetcsv($file);
? ? ? ? ? ? $userid = $tempdata[0];
? ? ? ? ? ? $userid = intval($userid);
? ? ? ? ? ? if ($userid 0) {
? ? ? ? ? ? ? ? array_push($userdata, $userid);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? fclose($file);
? ? ? ? $usernum = count($userdata);
? ? ? ? $apidata = ['code' = 200, 'msg' = '成功', 'data' = ['url' = 'http://'.$_SERVER['HTTP_HOST'].'/'.$path_in_folder, 'usernum' = $usernum]];
? ? ? ? return json($apidata);
? ? }
超全局變量$_FILES。
php中接收上傳文件信息的系統(tǒng)數(shù)組是超全局變量$_FILES,超全局變量$_FILES是一個二維數(shù)組,用來保存客戶端上傳到服務(wù)器的文件信息。二維數(shù)組的行是文件域的名稱,列有5個。
php中接收上傳文件配置要求,post_max_size=8M:表單允許的最大值,upload_max_filesize=2M:允許上傳的文件大小。upload_tmp_dir=F:\wamp\tmp:指定臨時文件地址。