1. 程式人生 > >使用CURL模擬表單上傳檔案

使用CURL模擬表單上傳檔案

有時需要使用PHP程式上傳檔案,其實使用PHP上傳檔案有多種方式,如果能完全模擬出HTML表單的效果這樣伺服器端就不用做任何程式碼的改動了,使用CURL完全可以實現,在PHP5.5之前使用的方式和PHP7.x、PHP5.6x中使用了新的方式,下面是程式碼示例:

$path='';//檔案路徑
if (class_exists('\CURLFile')) {
    //   >  PHP5.6
    $file = new \CURLFile($path,''application/octet-stream'');
} else {
    //   <  PHP5.6
    $file
= "@".realpath ($path ); } //$file = new CURLFile('./127.zip','application/octet-stream'); $file->setMimeType('application/octet-stream');//可以重新設定檔案的mime型別 //或者使用下面過程化的寫法 //$file = curl_file_create('','application/octet-stream'); $postfields = [ 'user' => 'admin', 'pass' => '123456', 'file'
=> $file ]; $url = '伺服器地址'; //---------------------------- $ch = curl_init(); $params[CURLOPT_URL] = $url; //請求url地址 $params[CURLOPT_HEADER] = true; //是否返回響應頭資訊 $params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'
; $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $postfields; curl_setopt_array($ch, $params); //傳入curl引數 $content = curl_exec($ch); //執行 echo $content; //輸出登入結果 curl_close($ch); //關閉連線

相關推薦

使用CURL模擬檔案

有時需要使用PHP程式上傳檔案,其實使用PHP上傳檔案有多種方式,如果能完全模擬出HTML表單的效果這樣伺服器端就不用做任何程式碼的改動了,使用CURL完全可以實現,在PHP5.5之前使用的方式和PHP7.x、PHP5.6x中使用了新的方式,下面是程式碼示例:

curl post檔案(C++)

最近測試如何上傳檔案到伺服器。原來傳照片一致通過binary 形式傳檔案,或者把圖片base64編碼傳圖片。一致沒有用form-data 表單形式傳送資料,今天嘗試下如何使用libcurl提供的API上傳檔案。 Sample code: #include <

使用httpclient模擬檔案,後臺用struts2接收

本人是使用java,開發android後臺的,公司要求使用SSM框架,有一個功能要求是實現android大檔案的上傳。開發人員都是新手,以前沒有開發經驗,鼓搗了好久,也嘗試了兩個android框架,Xutils貌似跟struts2不太好整合,而AsyncHttpClient

QT模擬檔案到微信伺服器

最近做微信開發,需要上傳素材到微信伺服器,我就用qt寫了一個介面上傳素材,首先我們來看下最終的介面: 然後將裡面的access_token後面的lineEdit命名為:accessMediaEdit,type後面的ComboBox命名為typeComboB

java模擬檔案,java通過模擬post方式提交實現圖片功能例項

package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.

PHP:curl模擬form檔案

<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="upload"> <buttion>submit</button> </f

PHP使用CURL向Python,Golang傳送檔案檔案[HTTP協議下Api]

PHP傳送方程式碼段: <?php /** * htppCurl表單上傳檔案 * @param $file FILE_ADDR * @param string $url uri * @param string $key key * @return bool|mixed *

HttpClien實現使用post方式模擬檔案和字元引數

前提:自行準備好httpmime.jar /** * HttpClien實現模擬表單post提交檔案資料和字元引數,並支援大檔案上傳 * @author dance * */ public class HttpClientUploadManager { pub

form檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

ajax檔案 基於jquery form檔案

<script src="/static/js/jquery.js"></script><script> $("#reg-btn").click(function () { // 1. 取到使用者填寫的資料 var for

EXT.JS2.2檔案

var uploadFile = new Ext.form.TextField({ fieldLabel: '上傳檔案', id:'file', name: 'uploadFile', height

七牛ajax模擬圖片

<form method="post" action="http://up-z2.qiniup.com/" enctype="multipart/form-data"> <input name="token" type="hidden" id="qiniu_t

django 基於form檔案和基於ajax檔案

一、基於form表單上傳檔案 1、html裡是有一個input type="file" 和 ‘submit’的標籤 2、vies.py def fileupload(request): if request.method == 'POST': print(request.P

ajax實現檔案和form檔案的區別

在使用form表單的時候,一旦點選提交觸發submit事件,一般會使得頁面跳轉,頁面間的跳轉等行為的控制權往往在後端,後端會控制頁面的跳轉及資料傳遞,但是在某些時候不希望頁面跳轉,或者說想要將控制權放在前端,通過js來操作頁面的跳轉或者資料變化。 一般這種非同步的操作,我們

form檔案三要素

1.提供form表單,method必須是post 2.form表單的enctype必須是multipart/form-data 3.提供input type="file"類的上傳輸入域 <div> <form action="${ctx}/easyedu/sta

IE相容筆記(一):相容IE9檔案

幾年前做相容IE8的pc端專案的時候就遇到檔案上傳的需求,當時也是檢視文件來解決IE9以下不支援formData的問題。由於之前沒有寫部落格的習慣,最近又遇到這樣的需求,所以寫出來想幫助需要用到的朋友。   本身檔案上傳不難,只需要注意一些細節: 用最初的表單提交的方式f

springmvc結合jquery.form.js非同步提交檔案

需要 jquery.form.js 外掛 <script type="text/javascript" src="/libs/js/form/jquery.form.js"><

form檔案返回資料

廢話不說,直接上程式碼 jsp: <div style="display:none">                         <form id="viewImport" action="" enctype="multipart/form-data

WebAPI+Form檔案

上傳的時候還是遇到一些問題的,在文章開頭羅列一下,希望幫到跟我遇到同樣問題的人問題一:GET 請求與POST請求起初我使用的是GET 請求,發現不行,後改為了POST,具體原因尚不明確,不過一般向伺服器傳送資料還是用POST吧,後來發現網上有使用GET方式上傳檔案的,但是貌似

HttpURLConnection 提交+ 檔案

package com.customUpload.utils; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import ja