$.ajax({
type : "POST",
url : "/sj/cooperation/ajax_dd",
data : new FormData($('#myform')[0]),
async: false,
cache: false,
contentType: false,
processData: false,
success : function($data) {
$re = jQuery.parseJSON($data);
$("#dd_id").val($re.dd_id);
$msg = temp_dd($re.ddd);
$($msg).hide().prependTo(".coop-msg").fadeIn('show');
$("#coop_msg").val("");
}
});
2020年1月6日 星期一
【Jquery】ajax post from 檔案上傳
2019年12月26日 星期四
【Mysql】json_extract
json_extract 可抓取在資料中json的值
範例:
範例:
// 抓取json第1個跟第0個值
SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]', '$[0]');
結果:20 | 10
// 抓取data欄位,json名稱為name的值
select json_extract(data,'$.name'),json_extract(data,'$.tel') from tab_json
直接抓取json第幾個值
CREATE TABLE tj10 (a JSON, b INT);
// 建立資料
INSERT INTO tj10 VALUES ("[3,10,5,17,44]", 33), ("[3,10,5,17,[22,44,66]]", 0);
// 抓取
SELECT a->"$[4]" FROM tj10;
結果:44 | [22,44,66]
更多資訊要看mysql官網:連結
2019年12月18日 星期三
【laravel】storage 相關
1.在 laravel 目錄輸入,預設目錄為 /storage/app/
php artisan storage:link
2.建立檔案,在程式碼中加入
Storage::disk('public')->put('test.txt', 'contents...');
3.取得剛剛新建立檔案的網址
echo asset('storage/test.txt');
4.取得檔案的內容
echo Storage::get('test.txt');
5.下載檔案
Storage::download('test.txt');
6.檔案上傳
$path = request()->image->store('public'); // 將欄位名image的圖片存入/storage/app/public
request()->image->storeAs($dir, $file_name); // 將檔案以 $file_name 存入 $dir,$dir='public/';
7.取得副檔名
$ext = request()->image->extension();
8.是否有檔案
request()->hasFile('image');
9.照片上傳+縮圖範例
php artisan storage:link
2.建立檔案,在程式碼中加入
Storage::disk('public')->put('test.txt', 'contents...');
3.取得剛剛新建立檔案的網址
echo asset('storage/test.txt');
4.取得檔案的內容
echo Storage::get('test.txt');
5.下載檔案
Storage::download('test.txt');
6.檔案上傳
$path = request()->image->store('public'); // 將欄位名image的圖片存入/storage/app/public
request()->image->storeAs($dir, $file_name); // 將檔案以 $file_name 存入 $dir,$dir='public/';
7.取得副檔名
$ext = request()->image->extension();
8.是否有檔案
request()->hasFile('image');
9.照片上傳+縮圖範例
/**
* 圖片上傳 + 縮圖
* @param [request]$img $request->file
* @param [string] $feild 欄位名稱
* @param array $thumb_arr 縮圖 [[100,100],[250,250]] 會有兩個thumb資料目錄,沒輸入就不縮圖
* @return [array] result:是否成功 file_name、file_path
*/
public function upload_image($img, $feild, $thumb_arr=[])
{
$check = 1;
$ext = $img->extension();
if (!$this->fileExtCheck($ext)){
$check = 0;
}
$admin_path = $this->admin_path.'/'.$feild;
Storage::makeDirectory('public/'.$admin_path);
$file_name = $this->getFileName($img->getClientOriginalName());
$directory = $this->la_storage_path.'/'.$admin_path;
$save_file = $directory.'/'.$file_name;
if (!Image::make($img)->save($save_file)){
$check = 0;
}
if (isset($thumb_arr)){
foreach($thumb_arr as $thumb){
$thumb_name = 'thumb_'.$thumb[0].'_'.$thumb[1];
Storage::makeDirectory('public/'.$admin_path.'/'.$thumb_name);
$themb_img = $directory.'/'.$thumb_name.'/'.$file_name;
$t = Image::make($img)->resize($thumb[0],$thumb[1],function($constraint){
$constraint->aspectRatio();
})->save($themb_img);
if (!$t){
$check = 0;
}
}
}
if ($check)
return ['result'=>'ok', 'file_name'=>$file_name, 'file_path'=>'storage/'.$admin_path.'/'.$file_name];
else
return ['result'=>'err'];
}
10.刪除照片及縮圖
public function unlink_img($img, $thumb_arr=[])
{
if (is_file($this->root.'/'.$img)) unlink($this->root.'/'.$img);
if (isset($thumb_arr)){
foreach($thumb_arr as $thumb){
$thumb_name = 'thumb_'.$thumb[0].'_'.$thumb[1];
$thumb_img = $this->root.'/'.dirname($img).'/'.$thumb_name.'/'.basename($img);
if (is_file($thumb_img)) unlink($thumb_img);
}
}
}
2019年3月11日 星期一
【PHP】CURL 傳檔案 方法2
$url = '上傳網址';
$file_path = "檔案絕對路徑";
$fields = array('key'=>'val'); // post值
function curl_file_get_contents($url,$file_path,$fields='')
{
$files['files[0]'] = file_get_contents($file_path);
// curl
$curl = curl_init();
$boundary = uniqid();
$delimiter = '-------------' . $boundary;
$post_data = build_data_files($boundary, $fields, $files);
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
//CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => array(
//"Authorization: Bearer $TOKEN",
"Content-Type: multipart/form-data; boundary=" . $delimiter,
"Content-Length: " . strlen($post_data)
),
));
$response = curl_exec($curl);
$info = curl_getinfo($curl);
$err = curl_error($curl);
curl_close($curl);
return $response;
}
function build_data_files($boundary, $fields, $files){
$data = '';
$eol = "\r\n";
$delimiter = '-------------' . $boundary;
if ($fields)
{
foreach ($fields as $name => $content) {
$data .= "--" . $delimiter . $eol
. 'Content-Disposition: form-data; name="' . $name . "\"".$eol.$eol
. $content . $eol;
}
}
foreach ($files as $name => $content) {
$data .= "--" . $delimiter . $eol
. 'Content-Disposition: form-data; name="' . $name . '"; filename="' . $name . '"' . $eol
//. 'Content-Type: image/png'.$eol
. 'Content-Transfer-Encoding: binary'.$eol
;
$data .= $eol;
$data .= $content . $eol;
}
$data .= "--" . $delimiter . "--".$eol;
return $data;
}
2019年1月8日 星期二
【apache】.htaccess Rewrite 設定
# 打開重寫引擎
RewriteEngine On
# 設定基準目錄,從根目錄開始比對
RewriteBase /
# 比對網址,倘若符合 thumbnail,則轉址到 cache 底下,至此結束。
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
# 重新比對網址,倘若結尾是 mp3, mov, ogg, mp4, avi, wmv,不做任何替代,直接 404,至此結束。
RewriteRule (.[^\.]).(mp3|mov|ogg|mp4|avi|wmv)$ - [NC,F,L]
# 設定比對條件,若請求的網址是檔案。
RewriteCond %{REQUEST_FILENAME} -f
# 重新比對網址,倘若是 cache,但是非 sitemap 底下,結尾是 .cache, .xml, .txt, .log,不做任何替代,直接 404,至此結束。
RewriteRule ^(cache)+/+([^sitemap/])(.+[^/]).(cache|xml|txt|log)$ - [NC,F,L]
# 重新比對網址,倘若請求網址是資料夾。
RewriteCond %{REQUEST_FILENAME} -d
# 在結尾加上 /,至此結束。
RewriteRule ^(.+[^/])$ $1/ [L]
# 重新比對網址,倘若請求網址不是檔案。
RewriteCond %{REQUEST_FILENAME} !-f
# 將請求網址轉給 rewrite.php 這支檔案,至此結束,並連同 Query String 一併傳入。
RewriteRule ^(.*)$ rewrite.php [L,QSA]
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
詳細:https://blog.hinablue.me/apache-note-about-some-rewrite-note-2011-05/
RewriteEngine On
# 設定基準目錄,從根目錄開始比對
RewriteBase /
# 比對網址,倘若符合 thumbnail,則轉址到 cache 底下,至此結束。
RewriteRule ^(thumbnail)/([0-9]+/.+)$ cache/$1/$2 [L]
# 重新比對網址,倘若結尾是 mp3, mov, ogg, mp4, avi, wmv,不做任何替代,直接 404,至此結束。
RewriteRule (.[^\.]).(mp3|mov|ogg|mp4|avi|wmv)$ - [NC,F,L]
# 設定比對條件,若請求的網址是檔案。
RewriteCond %{REQUEST_FILENAME} -f
# 重新比對網址,倘若是 cache,但是非 sitemap 底下,結尾是 .cache, .xml, .txt, .log,不做任何替代,直接 404,至此結束。
RewriteRule ^(cache)+/+([^sitemap/])(.+[^/]).(cache|xml|txt|log)$ - [NC,F,L]
# 重新比對網址,倘若請求網址是資料夾。
RewriteCond %{REQUEST_FILENAME} -d
# 在結尾加上 /,至此結束。
RewriteRule ^(.+[^/])$ $1/ [L]
# 重新比對網址,倘若請求網址不是檔案。
RewriteCond %{REQUEST_FILENAME} !-f
# 將請求網址轉給 rewrite.php 這支檔案,至此結束,並連同 Query String 一併傳入。
RewriteRule ^(.*)$ rewrite.php [L,QSA]
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
詳細:https://blog.hinablue.me/apache-note-about-some-rewrite-note-2011-05/
2018年12月25日 星期二
【apache】VC6 9 11 15?
安裝apache到windows有分VC多少版本的
他是指用VisualStudio多少版本編譯的,windows也要去下載對應套件才能用
但太舊的windows會不支援新版的VisualStudio
VC6 Visual Studio 6
VC9 Visual Studio2008
VC11 Visual Studio2012 (xp、windows server2003不支援)
VC14 Visual Studio2015 (xp、windows server2003不支援)
VC15 Visual Studio2017 (xp、windows server2003不支援)
他是指用VisualStudio多少版本編譯的,windows也要去下載對應套件才能用
但太舊的windows會不支援新版的VisualStudio
VC6 Visual Studio 6
VC9 Visual Studio2008
VC11 Visual Studio2012 (xp、windows server2003不支援)
VC14 Visual Studio2015 (xp、windows server2003不支援)
VC15 Visual Studio2017 (xp、windows server2003不支援)
【PHP】php.ini 設定發信信箱及信箱密碼 win32
參考網址:http://php.net/manual/en/ref.mail.php
1.到 http://glob.com.au/sendmail/ 下載 sendmail
2.找個目錄放,我是放到跟php的目錄裡面
3.修改php.ini 找到 mail function
修改 sendmail_path = "C:\php\sendmail\sendmail.exe -t" (剛剛下載的檔案的位置)
4.修改 sendmail 裡的 sendmail/sendmail.ini
smtp_server=(郵件主機)
auth_username=(帳號)
auth_password=(密碼)
2018年12月10日 星期一
【CSS】mask 滿畫面
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #000;
opacity: 0.65;
z-index: 100;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: #000;
opacity: 0.65;
z-index: 100;
2018年9月7日 星期五
【PHP】瀏覽過的商品
function save_history($id,$max=10)
{
$t = 60 * 60 * 24 * 365;
if ($_COOKIE['history_goods'])
{
$history_goods_arr = json_decode($_COOKIE['history_goods'],true);
if (in_array($id,$history_goods_arr))
{
return false;
}
if (count($history_goods_arr) >= $max)
{
array_shift($history_goods_arr);
}
$history_goods_arr[] = $id;
setcookie("history_goods",'',time()-3600);
setcookie("history_goods",$history_goods,time()+$t);
} else {
$history_goods_arr[] = $id;
$history_goods = json_encode($history_goods_arr);
setcookie("history_goods",$history_goods,time()+$t);
}
}
2018年8月17日 星期五
【PHP】extract
extract 這很好用可以直接把陣列變成變數
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
但不要用於GET和POST
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
但不要用於GET和POST
訂閱:
意見 (Atom)