自由學習的風

幽夢影 張潮 少年讀書,如隙中窺月;中年讀書,如庭中望月;老年讀書,如臺上玩月。皆以閱歷之淺深,為所得之淺深耳。

[Ubuntu] 一次刪檔案,除了…

2014年6月4日 星期三

文章出處:http://www.cyberciti.biz/faq/linux-bash-delete-all-files-in-directory-except-few/

雖然文章有提供二、三種方式,不過,我覺得下列的方法最簡單、實用:
## Delete all file except file1 ##
rm  !(file1)
 
## Delete all file except file1 and file2 ##
rm  !(file1|file2)
 
## Delete all file except all zip files ##
rm  !(*.zip)
 
## Delete all file except all zip and iso files ##
rm  !(*.zip|*.iso)
 
## You set full path too ##
rm /Users/vivek/!(*.zip|*.iso|*.mp3)
 
## Pass options ##
rm [options]  !(*.zip|*.iso)
rm -v  !(*.zip|*.iso)
rm -f  !(*.zip|*.iso)
rm -v -i  !(*.php)

[Code] 不用 framework 時,避免 Sql Injection

1.  利用  PDO
$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name'); $stmt->execute(array('name' => $name)); foreach ($stmt as $row) { // do something with $row}
2.  MySQLi
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name);

$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // do something with $row
}

ref: stackoverflow


[轉] HTML5 拖曳多檔案上傳

文章來源:XYZ的筆記本

HTML5 拖曳多檔案上傳
目的:拖曳電腦檔案到網頁某區塊後,直接上傳到網站伺服器上。
方法:
  1. 使用 HTML5 新增的拖曳功能(Drag and Drop),將電腦檔案拖曳到網頁上。 
  1. 拖曳時會產生幾種事件,這些事件會產生 DragEvent 物件。
  1. DragEvent 物件有一個 dataTransfer 屬性,由dataTransfer 屬性,可取得 DataTransfer 物件。
  1. 由 DataTransfer 物件的 files 屬性,即可取得檔案物件(FileList)。 
  1. 將取得的檔案物件丟給 FormData 物件。
  1. FormData:http://www.w3.org/TR/XMLHttpRequest2/#interface-formdata
  1. 最後將 FormData 的資料,丟給 XMLHttpRequest 使用 AJAX 方式上傳到網站伺服器。
範例:以下範例可拖曳多個 JPG 圖檔,一次上傳,並顯示上傳進度。
(於Firefox、Chrome、IE10 測試可正常運作)
HTML 與 JavaScript 的部份如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5拖曳多檔案上傳</title>
<style>
#dropDIV{
text-align: center;
width: 300px;
height: 200px;
margin: auto;
border: dashed 2px gray;
}
img{
max-height:200px;
max-width:300px;
}
</style>
<script>
function dragoverHandler(evt) {
evt.preventDefault();
}
function dropHandler(evt) {//evt 為 DragEvent 物件
evt.preventDefault();
var files = evt.dataTransfer.files;//由DataTransfer物件的files屬性取得檔案物件
var fd = new FormData();
var xhr = new XMLHttpRequest();
var up_progress = document.getElementById('up_progress');
xhr.open('POST', 'upload.php');//上傳到upload.php
xhr.onload = function() {
//上傳完成
up_progress.innerHTML = '100 %, 上傳完成';
};
xhr.upload.onprogress = function (evt) {
//上傳進度
if (evt.lengthComputable) {
var complete = (evt.loaded / evt.total * 100 | 0);
if(100==complete){
complete=99.9;
}
up_progress.innerHTML = complete + ' %';
}
}
for (var i in files) {
if (files[i].type == 'image/jpeg') {
//將圖片在頁面預覽
var fr = new FileReader();
fr.onload = openfile;
fr.readAsDataURL(files[i]);
//新增上傳檔案,上傳後名稱為 ff 的陣列
fd.append('ff[]', files[i]);
}
}
xhr.send(fd);//開始上傳
}
function openfile(evt) {
var img = evt.target.result;
var imgx = document.createElement('img');
imgx.style.margin = "10px";
imgx.src = img;
document.getElementById('imgDIV').appendChild(imgx);
}
</script>
</head>
<body>
<div id="dropDIV" ondragover="dragoverHandler(event)" ondrop="dropHandler(event)">
拖曳圖片到此處上傳
<div id="up_progress"></div>
</div>
<div id="imgDIV"></div>
</body>
</html>
伺服器端處理上傳圖檔的 PHP 程式(upload.php)
$uploads_dir = 'mydir';//存放上傳檔案資料夾
foreach ($_FILES["ff"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["ff"]["tmp_name"][$key];
$name = $_FILES["ff"]["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}

[CSS] CSS vocabulary

2014年6月2日 星期一

讓你認識 CSS 語法的意義,很不錯的工具!

http://pumpula.net/p/apps/css-vocabulary/

[轉載][網管] 調整Samba 的效能

2014年5月30日 星期五

目前正在測試中,還不甚確定調校後的效能…

http://www.eggplant.pro/blog/faster-samba-smb-cifs-share-performance/

[Ubuntu] 執行 sudo 時,出現 "no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory"

2014年5月29日 星期四

這個問題在  ubuntu 14.04 安裝 samba 之後,只履執行  sudo 的指令,就會出現這個錯誤訊息:

"no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory"

發生的原因應該是在於 「libpam-smbpass」這支驗證程式,可以把它移除掉之後就會正常,

sudo apt-get remove libpam-smbpass

不過,另一個解法也蠻好的,直接執行

1. 

2. 

 

Ubuntu 更新索引檔失敗?

2014年5月9日 星期五

如果更新 source(apt-get update) 時出現下列的錯誤訊息,是因為 ubuntu 13.04 目前官方已不維護了,所以 extras.ubuntu.com 已不支持 ubuntu 13.04,目前受影響的有 ezgoX, ezgoXI, esteaU(13.04),可以編輯 /etc/apt/sources.list 檔案,然後把
deb http://deb http://extras.ubuntu.com/ubuntu raring main
deb-src http://extras.ubuntu.com/ubuntu raring main


加上註解,就可以了

# deb http://deb http://extras.ubuntu.com/ubuntu raring main
# deb-src http://extras.ubuntu.com/ubuntu raring main


略過 http://ppa.launchpad.net raring/main Translation-zh_TW
略過 http://ppa.launchpad.net raring/main Translation-zh
略過 http://ppa.launchpad.net raring/main Translation-en
W: 無法取得 http://extras.ubuntu.com/ubuntu/dists/raring/main/source/Sources,404  Not Found
W: 無法取得 http://extras.ubuntu.com/ubuntu/dists/raring/main/binary-amd64/Packages,404  Not Found
W: 無法取得 http://extras.ubuntu.com/ubuntu/dists/raring/main/binary-i386/Packages,404  Not Found
E: 某些索引檔未能下載。其已遭略過,或改為使用舊的。