php上傳表單
Ⅰ php curl 模擬表單數據流multipart/form-data上傳文件
在調用公眾號介面https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;
上傳永久素材文件總是返回 "{\"errcode\":41005,\"errmsg\":\"media data missing\"}"
經過多次測試使用下面的方式,可以正常上傳
//調用測試
protected static $url;
protected static $delimiter;
protected static $instance;
public function index()
{
static::$delimiter = uniqid();
$basename = Request::instance()->root();
if (pathinfo($basename, PATHINFO_EXTENSION) == 'php') {
$basename = dirname($basename);
}
$result=$this->wxAddMaterial($token,$basename.'/upload/images/gnlog.jpg','image');
}
// 新增其他類型永久素材
public function wxAddMaterial($token,$filename='',$type='') {
// 設置請求參數
static::$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;
$filePath = str_replace('\\', '/', $filename);
// 發送請求
$imginfo=pathinfo($filePath);
$fields = array(
'media'=>file_get_contents(".".$filePath),
'filename'=>$imginfo["basename"],
);
$res = $this->putPart( $fields);
// 發送請求
return $res;
}
//推送文件流
public function putPart($param) {
$post_data = static::buildData($param);
$curl = curl_init(static::$url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Content-Type: multipart/form-data; boundary=" . static::$delimiter,
"Content-Length: " . strlen($post_data)
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
//編譯請求頭格式和數據流
private static function buildData($param){
$data = '';
$eol = "\r\n";
$upload = $param['media'];
unset($param['media']);
foreach ($param as $name => $content) {
$data .= "--" . static::$delimiter . "\r\n"
. 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"
. $content . "\r\n";
}
$data .= "--" . static::$delimiter . $eol
. 'Content-Disposition: form-data; name="media"; filename="' . $param['filename'] . '"' . "\r\n"
. 'Content-Type:application/octet-stream'."\r\n\r\n";
$data .= $upload . "\r\n";
$data .= "--" . static::$delimiter . "--\r\n";
return $data;
}
根據自己的實際情況稍作修改
Ⅱ PHP:curl模擬form表單上傳文件
需要模擬的就是上面form表單。
curl_setop設置選項
PS:上面例子只有在php5以下版本有效,換言之現在根本沒有用 根本沒有用 根本沒有用 [手動摔桌子],而且現在網上充斥的全是這種過時的失效版本
@字元什麼,現在根本沒有用譽絕了,不要懷疑你自己,還有網上說只要加上:
就能起效,不用懷疑,這也是沒有效的[手動摔桌子],這個選項已經棄用了,現在。
用curlFile代替@,也不需要使用 CURLOPT_SAFE_UPLOAD
用
替拍蔽換
CURLFILE類的詳細使用
PS: $path不要使用網路路慶賀姿徑 ( http://xxxx/files/img.png ),要使用本地路徑(/files/img.png)
Ⅲ PHP上傳圖片並把圖片地址寫入表單中!
其實要保存上傳的圖片地茄察並址並不需要專顫跡門地一個input表單項,只沒並要在這個form提交到的後台頁面裡面做相應處理即可。
你可在後台的表單處理頁面裡面查找 move_uploaded_file() 這個函數,它的第一個參數是圖片的臨時文件名,第二個參數是即將保存的地址。只要把這第二個參數保存到資料庫即可滿足您的要求,並不需要從表單提交一個圖片過來再保存。
Ⅳ php批量修改商品價格表單下載與上傳功能怎麼做
上傳成功後,你會返回一個路徑到這個頁面.這個頁面應該有一個隱藏的表單.
然燃並後你點提交的皮並跡時候,判斷這個隱藏的表單內容蔽喚是否為空.如果為空就提示他還沒上傳圖片.
你整個的提交.必須是圖片上傳完畢之後才可以.
你可以去後盾人平台看看,裡面的東西不錯
Ⅳ php 文件和表單內容一起上傳到資料庫
<?php
$filename = $_POST['filename'];
$explain = $_POST['explain'];
$upfile = $_FILES['upfile'];
if(is_uploaded_file($upfile['tmp_name']) && $upfile['size'跡雹]>0){
$filepath = './'.$upfile['name'];
move_uploaded_file($upfile['tmp_name'],$filepath);
$res = mysql_query("INSERT INTO 表(filename,explain,filepath) VALUES('螞州蔽$filename','$explain','$filepath')");
if($res){
echo '添加悶州成功!';
exit();
}
}
?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>
<input type="text" name="filename" id="filename" />
</p>
<p>
<input type="text" name="explain" id="explain" />
</p>
<p>
<input type="file" name="upfile" id="upfile" />
</p>
<p>
<input type="submit" name="button" id="button" value="提交" />
</p>
</form>
Ⅵ php上傳文件,表單中的name有什麼作用
name用來接收表單傳野銀岩過去的變數。
name="uploadfile" 在php那搏棚邊可以用$_FILES['uploadfile'] 來接收。頌御
Ⅶ 一個php表單中先上傳文件然後獲取路徑通過表單上傳到資料庫
//不要把這個問題想的太復雜,上傳文件跟其他數據完全可以一起提交到伺服器,為什麼一定要先上傳圖片,返回結果再提交其他欄位呢,這不是給自己找麻煩嗎:
<formactionmethod='post'>
<inputname='username'type='text'/>
<inputtype='file'name='image'/>
<inputtype='submit'name='submit'/>
<form>
Server.php:
$file=$_FILES['image'];這個就是你上傳的文件,先保存在伺服器,再和其他欄位一起保存到資料庫即可
$username=$_POST['username'];
$sql=//...
Ⅷ php中怎樣用一個鏈接來觸發表單上傳按鈕,就是點鏈接達到表單上傳按鈕點擊的效果
像表單這種東西叢嫌,一般是和js 一起用的,要達到表單上傳的效果,可以用js 實現,當點擊鏈接時,提交滲顫手錶單即可,洞則form.submit();
Ⅸ PHP實現簡單的文本提交表單(可放入圖片)
。。。。
插入圖片file控制項實現的,上傳實際上是將圖片上傳到了伺服器上面,然後獲得圖片存儲的路徑。資料庫存儲的不是圖片,而是這里的路徑。
代碼如下:
html:
<form action="你的路徑" enctype="multipart/form-data" method=「post」>
<input type="file" value="上傳圖片" name="pic">
<textarea name="content"></textarea>
</from>
這里提交到php頁面,也就是你路徑指向的位置:
php:
$file = $_FILES["pic"]["name"]; //提取文件域內容名稱,並判斷
$path=」aaa/」; //上傳路徑 .這個路徑必須真實存在,否則會出錯,或者你判定下這個路徑是否存在,如果不存在則生成文件,這里我就不寫了。判定圖片格式我也沒有寫,如果你想要,從網上下載很多上傳圖片的類庫,簡單方便.
$file2 = $path.$file;//文件將要放到的位置
$result=move_uploaded_file($_FILES["img"]["tmp_name"],$file2); //將臨時文件移動到指定目錄下
$content = $_POST['content'];
然後插入到資料庫中:
insert into 表 (『pic』,'content') values ('".$file2."','".$content."');
Ⅹ php實現簡單的表單文件上傳和管理員操作
如果文件類型是.txt,可以直接用file_get_contents()去獲取,再echo出來就行了。
如果是圖片,岩吵直接在html中添加晌棗畢img標簽引入就行了。
其它情況,要看你的文件類型,瀏覽器宴芹是不是什麼文件都可以直接打開的。