tp上傳圖片
1. Thinkphp6上傳圖片七牛雲 如何上傳文件到七牛雲對象儲存cos
ThinkPHP6 如何上傳圖片七牛雲,如何上傳文件到七牛雲對象儲存cos,總所周知圖片是特別消耗網站帶寬的,個人網站將圖片上傳至七牛雲才能顯著提升網站的響應速度,手把手交大家如何上配置ThinkPHP6上傳文件至七牛雲.
然後我們就可以使用 $url=Qiniu::upload($filePath,$filename); 傳入文件的相對路徑或絕對路徑加上文件名,在文件上傳成功後自動又將圖片上傳至七牛雲~
2. tp框架中文件上傳後怎麼使文件名不亂嗎
給你舉個列子,可以同時刪除資料庫里和伺服器文件夾里的圖片: $User = M("message"); $a = $User->where('id='.$id)->select(); $url=$_SERVER["DOCUMENT_ROOT"]."/admin/Public/".$a[0]['url']; unlink($url); $User->delete($id);
3. tp5文件上傳時怎麼把圖片路徑和post數據一起存到資料庫(圖片使用ajax提交post數據使用form提交)
ajax上傳圖片成功後返回圖片路徑
前端再把這個路徑存到一個隱藏欄位里,form一起提交
4. thinkphp上傳圖片如何檢驗尺寸
用getimagesize方法,如下示例:
HTML頁面
<!DOCTYPEhtml>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>定義inputtype="file"的樣式</title>
<styletype="text/css">
body{font-size:14px;}
input{vertical-align:middle;margin:0;padding:0}
.file-box{position:relative;width:340px}
.txt{height:22px;border:1pxsolid#cdcdcd;width:180px;cursor:pointer;}
.btn{background-color:#FFF;border:1pxsolid#CDCDCD;height:24px;width:70px;cursor:pointer;}
.file{position:absolute;top:0;right:80px;height:24px;filter:alpha(opacity:0);opacity:0;width:260px;cursor:pointer;}
</style>
</head>
<body>
<divclass="file-box">
<formaction="test.php"method="post"enctype="multipart/form-data">
<inputtype='text'name='textfield'id='textfield'class='txt'/>
<inputtype='button'class='btn'value='瀏覽...'/>
<inputtype="file"name="fileField"class="file"id="fileField"size="28"onchange="document.getElementById('textfield').value=this.value"/>
<inputtype="submit"name="submit"class="btn"value="上傳"/>
</form>
</div>
</body>
</html>
PHP頁面:
<?php
echo"<pre>";
print_r($_FILES);
echo"<br/>";
$size=getimagesize($_FILES['fileField']['tmp_name']);
echo"<pre>";
print_r($size);
?>
demo效果示意圖
第二個輸出的數組有你需要的相關數據。
看看是否符合你的需求?若有疑問,歡迎追問!
5. THINKPHP上傳大文件問題
樓主,問題解決了嗎?我的解決了,滲祥我是通過查看php.log文件,看到因運喊乎為我旁悉post提交的數據過大,而被php拋棄了,後來我在php.ini中修改了post提交大小的數值,改成了沒有限制,就行了
6. tp中微信小程序上傳怎麼寫
第一步 先把文件夾的臘亮咐那兩個圖片 配置成一樣的路徑 除了域名要改 其他保持一致。
第二步 把 Weixinpay 這個文件夾放在 \ThinkPHP\Library\Vendor 將Weixinpay文件夾放置到這個Vendor文件夾中
第三步 把 WxJsAPIController.class.php 這個php文件 \Home\Controller 這裡面
第四步 把 WxJsAPI這個文件夾 放置在 \Home\View 這個裡面
第五步 成功調用微信公眾號支付功能
jsApiCall.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE html>
<輪純html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'/>
<title>微信安全支付</title>
<script type="text/javascript">
//調用微信JS api 支付
function jsApiCall()
{
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
<?php echo $jsApiParameters; ?>,
function(res){
WeixinJSBridge.log(res.err_msg);
if(res.err_msg == "get_brand_wcpay_request:ok"){
//alert(res.err_code+res.err_desc+res.err_msg);
/*這里寫如果支付成功的話執行什鍵陸么操作*/
}else{
//返回跳轉到訂單詳情頁面
alert(支付失敗);
}
}
);
}
function callpay()
{
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}else{
jsApiCall();
}
}
</script>
</head>
<body>
<button style="width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="jsApiCall()" id="asd" >購買</button>
</p>
</body>
</html>
WxJsAPIController.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<?php
namespace Home\Controller;
use Think\Controller;
class WxJsAPIController extends Controller{
public function _initialize()
{
//引入WxPayPubHelper
vendor('Weixinpay.WxPayPubHelper');
}
public function jsApiCall()
{
//使用jsapi介面
$jsApi = new \JsApi_pub();
//=========步驟1:網頁授權獲取用戶openid============
//通過code獲得openid
//
//
if (!isset($_GET['code']))
{
//觸發微信返回code碼
$rUrl=urlencode(C('WxConfig.JS_API_CALL_URL').'/id/'.$_GET[id]);
/*注意一下這個 id 是為了可以成功的傳個 id值才這樣寫 如果你不需要的話也可以直接寫成
$rUrl=urlencode(C('WxConfig.JS_API_CALL_URL'));
$this->redirect('WxJsAPI/jsApiCall',array('id' =>55),0, '頁面跳轉中...');
我是這樣穿這個id過來的值得你們也可以自己改成其他的來傳這個id 或是刪除他不要
*/
$url = $jsApi->createOauthUrlForCode($rUrl);
// echo $url;exit();
Header("Location: $url");
}else
{
//獲取code碼,以獲取openid
$code = $_GET['code'];
$jsApi->setCode($code);
$openid = $jsApi->getOpenId();//openid 這里是為了獲取用戶當前的openid 如果你有做微信登陸的話就可以無視他。
}
//=========步驟2:使用統一支付介面,獲取prepay_id============
//使用統一支付介面
$unifiedOrder = new \UnifiedOrder_pub();
/*此處做資料庫的查詢 這里操作資料庫把產品信息顯示出來*/
/*此處做資料庫的查詢 這里操作資料庫把產品信息顯示出來*/
//設置統一支付介面參數
//設置必填參數
//appid已填,商戶無需重復填寫
//mch_id已填,商戶無需重復填寫
//noncestr已填,商戶無需重復填寫
//spbill_create_ip已填,商戶無需重復填寫
//sign已填,商戶無需重復填寫
//
$NOTIFY_URL="你的域名/index.php/Home/WxJsAPI/notify";
$unifiedOrder->setParameter("openid",$openid);//openid
$unifiedOrder->setParameter("body",'商品的名字');//商品描述
$unifiedOrder->setParameter("out_trade_no",'123456789');//商戶訂單號
$unifiedOrder->setParameter("total_fee",1*100);//總金額 微信的錢1*100等於1
$unifiedOrder->setParameter("notify_url",$NOTIFY_URL);//通知地址
$unifiedOrder->setParameter("trade_type","JSAPI");//交易類型
//非必填參數,商戶可根據實際情況選填
//$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商戶號
//$unifiedOrder->setParameter("device_info","XXXX");//設備號
//$unifiedOrder->setParameter("attach","XXXX");//附加數據
//$unifiedOrder->setParameter("time_start","XXXX");//交易起始時間
//$unifiedOrder->setParameter("time_expire","XXXX");//交易結束時間
//$unifiedOrder->setParameter("goods_tag","XXXX");//商品標記
//$unifiedOrder->setParameter("openid","XXXX");//用戶標識
//$unifiedOrder->setParameter("proct_id","XXXX");//商品ID
$prepay_id = $unifiedOrder->getPrepayId();
// echo $prepay_id;exit();
//=========步驟3:使用jsapi調起支付============
$jsApi->setPrepayId($prepay_id);
$jsApiParameters = $jsApi->getParameters();
$WEB_HOST='你的域名';//填寫的話 如 <a rel="nofollow" href="http://nicaicai.imwork.net" target="_blank">http://nicaicai.imwork.net</a> 最後面不用加 /
$this->assign('HOSTS',$WEB_HOST);
$this->assign('jsApiParameters',$jsApiParameters);
$this->display();
//echo $jsApiParameters;
}
public function notify()
{
//使用通用通知介面
$notify = new \Notify_pub();
//存儲微信的回調
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$notify->saveData($xml);
//驗證簽名,並回應微信。
//對後台通知交互時,如果微信收到商戶的應答不是成功或超時,微信認為通知失敗,
//微信會通過一定的策略(如30分鍾共8次)定期重新發起通知,
//盡可能提高通知的成功率,但微信不保證通知最終能成功。
if($notify->checkSign() == FALSE){
$notify->setReturnParameter("return_code","FAIL");//返回狀態碼
$notify->setReturnParameter("return_msg","簽名失敗了啊");//返回信息
}else{
$notify->setReturnParameter("return_code","SUCCESS");//設置返回碼
}
$returnXml = $notify->returnXml();
echo $returnXml;
//==商戶根據實際情況設置相應的處理流程,此處僅作舉例=======
//以log文件形式記錄回調信息
// $log_ = new Log_();
$log_name= ROOT."/Public/notify_url.log";//log文件路徑
if($notify->checkSign() == TRUE)
{
if ($notify->data["return_code"] == "FAIL") {
//此處應該更新一下訂單狀態,商戶自行增刪操作
log_result($log_name,"【通信出錯】:\n".$xml."\n");
}
elseif($notify->data["result_code"] == "FAIL"){
//此處應該更新一下訂單狀態,商戶自行增刪操作
log_result($log_name,"【業務出錯】:\n".$xml."\n");
}
else{
/*查看支付成功的返回值請去 <a rel="nofollow" href="https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1" target="_blank">https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1</a> */
$xmlss=$notify->data["out_trade_no"];//訂單號
$total_fee=$notify->data['total_fee'];//訂單總金額,單位為分,詳見支付金額
/*更新訂單狀態這里寫資料庫的操作*/
/*更新訂單狀態這里寫資料庫的操作*/
//此處應該更新一下訂單狀態,商戶自行增刪操作
log_result($log_name,"【支付成功】:\n".$xml."\n");
}
//商戶自行增加處理流程,
//例如:更新訂單狀態
//例如:資料庫操作
//例如:推送支付完成信息
}
}
// 列印log
public function log_result($file,$word)
{
$fp = fopen($file,"a");
flock($fp, LOCK_EX) ;
fwrite($fp,"執行日期:".strftime("%Y-%m-%d-%H:%M:%S",time())."\n".$word."\n\n");
flock($fp, LOCK_UN);
fclose($fp);
}
}
?>
希望我的回答可以幫到您哦
7. tp5可以設置上傳圖片的寬高嗎
你只能把把你的圖片修改了再上傳,或者在你用頁面顯示的時候設置一下顯示圖片的寬高。用一些特殊編輯器上傳的圖片除外
8. thinkphp上傳多個圖片,只能上傳一個圖片和保存一個數據,什麼原因
吧你的表結構 截圖看下 不太明白你的第一句
你的那個upload函數不行
thinkphp 自帶函數 會遍歷所有上傳
你每次調用 他都遍歷以便 所以你得到的永遠是上傳最後的一個
隨便不明白你的第一句話的意思 但是建議你這樣做
先上傳所有到一個緩存文件夾里
然後移動文件 再存儲最後的地址
9. 在tp裡面怎麼使用unlink函數刪除上傳的圖片文件
使用unlink{321}函數刪除上傳的圖片步驟如下:
1、新建一個321.php,添加php的界定符(<?php?>)。注意申明PHP與瀏覽器交互的文件類型和編碼:
6、根據原始網頁代碼,判斷圖片刪除是否成功即可。
(9)tp上傳圖片擴展閱讀:
關於函數unlink的解讀
1、頭文件:unistd.h(在WIN32系統中為windows.h)
2、函數功能:刪除一個文件的目錄項並減少它的鏈接數,若成功則返回0,否則返回-1,錯誤原因存於error。如果想通過調用這個函數來成功刪除文件,你就必須擁有這個文件的所屬目錄的寫和執行許可權。
3、注意事項:unlink函數會刪除參數pathname指定的文件。如果該文件名為最後連接點,但有其他進程打開了此文件,則在所有關於此文件的文件描述詞皆關閉後才會刪除。如果參數pathname為一符號連接,則此連接會被刪除。