當前位置:首頁 » 文件管理 » php上傳表單

php上傳表單

發布時間: 2023-04-24 09:53:49

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標簽引入就行了。
其它情況,要看你的文件類型,瀏覽器宴芹是不是什麼文件都可以直接打開的。

熱點內容
手機無線路由器怎麼設置密碼 發布:2025-05-12 05:18:28 瀏覽:816
渝人解壓密碼 發布:2025-05-12 05:18:12 瀏覽:769
備份網站資料庫備份 發布:2025-05-12 05:04:35 瀏覽:53
轉移的存儲卡 發布:2025-05-12 04:51:18 瀏覽:467
c語言大數相加 發布:2025-05-12 04:51:13 瀏覽:589
安卓內存大小有什麼影響 發布:2025-05-12 04:41:36 瀏覽:51
以下c語言常量錯誤的是 發布:2025-05-12 04:40:39 瀏覽:808
怎麼降低qq版本安卓80 發布:2025-05-12 04:40:39 瀏覽:191
一個密碼多少人知道後就不是秘密 發布:2025-05-12 04:26:07 瀏覽:522
ftp埠非21 發布:2025-05-12 04:09:09 瀏覽:230