thinkphp5圖片上傳
ThinkPHP里也有自帶的圖片上傳類(UploadFile.class.php) 和圖片模型類(Image.class.php)。方便於我們去實現圖片上傳功能。去看看手冊吧http://doc.thinkphp.cn/manual/upload.html
Ⅱ thinkphp 多圖上傳,如何把圖片路徑保存到資料庫
關於上傳文件:
推薦使用插件Uploadify!
使用方法:http://www.uploadify.com/documentation/
下載地址:http://www.uploadify.com/download/
關於多圖上傳:
在客戶端定義一個js變數,用於緩存每次非同步上傳圖片路徑;
最後提交表達數據的時候就把這些路徑集合保存到資料庫即可!
Ⅲ 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效果示意圖
第二個輸出的數組有你需要的相關數據。
看看是否符合你的需求?若有疑問,歡迎追問!
Ⅳ ThinkPHP做照片上傳,怎麼直接選擇圖片後就直接上傳,而不是選擇圖片後,再點擊上傳按鈕
這個點擊後直接上傳 其實只是把點擊上傳按鈕給隱藏了 你需要加個事件
Ⅳ Thinkphp上傳多圖時怎麼規定上傳第幾個圖
感覺這挺簡單的,你只判斷那要上傳的拿張圖片的name,如果name不為空就上傳
1:publicfunctionuploadOne(){
if(isset($_FILES['第三個圖片的name'])){
$upload=newThinkUpload();//實例化上傳類
$upload->maxSize=3145728;//設置附件上傳大小
$upload->exts=array('jpg','gif','png','jpeg');//設置附件上傳類型
$upload->savePath='./Public/Uploads/';//設置附件上傳目錄
//上傳單個文件
$info=$upload->uploadOne($_FILES['photo1']);
if(!$info){//上傳錯誤提示錯誤信息
$this->error($upload->getError());
}else{//上傳成功獲取上傳文件信息
echo$info['savepath'].$info['savename'];
}
}
}
2:使用foreach循環遍歷出你存放name數組中的內容,在循環出的時候你可以添加判斷獲取第三
張圖片的name,然後上傳,,
建議使用第二中方法!!
Ⅵ thinkphp5 有自帶七牛上傳圖片的驅動嗎 有的話怎麼應用 !
七牛的上傳其實就很簡單
我舉例下七牛上傳配置
'qiniu'=>[
'maxSize'=>5*1024*1024,//文件大小
'rootPath'=>'./',
'saveName'=>['uniqid',''],
'driver'=>'Qiniu',
'driverConfig'=>[
'secretKey'=>'',
'accessKey'=>'',
'domain'=>'',
'bucket'=>'',
]
]
控制器處理
//實例化上傳類
$upload=newUpload(C('qiniu'));
$info=$upload->uploadOne($file);
$this->ajaxReturn($info);
這是上傳的處理
其實七牛的驅動裡面也是集成了很多
我們可以直接實例化七牛
$qiniu=newQiniuStorage(C('qiniu.driverConfig'));
看好實例化裡面的是七牛的配置文件 因為不是直接用的配置
然後就可以調用七牛的方法
$qiniu->SomeFunction();
更多問題可以去php中文網問答社區
Ⅶ 高分求thinkphp中設置xheditor圖片上傳詳細步驟。。。
先在頁面上面配置獲取網路配置文件地址:window.UEDITOR_CONFIG.serverUrl = xx;
後面的就是伺服器端了
namespaceAdminController;
useAdminServiceBaseService;
{
publicfunction_empty(){
$action=I('get.action','','htmlspecialchars');
$callback=I('get.callback');
$result=null;
switch($action){
case'config':
$result=json_encode($this->_Config());
break;
/*上傳圖片*/
case'uploadimage':
/*上傳塗鴉*/
case'uploadscrawl':
/*上傳視頻*/
case'uploadvideo':
/*上傳文件*/
case'uploadfile':
$result=$this->_Upload($action);
break;
/*列出圖片*/
case'listimage':
/*列出文件*/
case'listfile':
$result=$this->_list($action);
break;
/*抓取遠程文件*/
case'catchimage':
$result=$this->_crawler();
break;
default:
$result=json_encode(array(
'state'=>'請求地址出錯'
));
break;
}
if(isset($_GET["callback"])){
if(preg_match("/^[w_]+$/",$_GET["callback"])){
echohtmlspecialchars($_GET["callback"]).'('.$result.')';
}else{
echojson_encode(array(
'state'=>'callback參數不合法'
));
}
}else{
echo$result;
}
}
privatefunction_Config(){
$CONFIG=json_decode(preg_replace("//*[sS]+?*//","",file_get_contents(APP_PATH.'Admin/Conf/config.json')),true);
$CONFIG['imageMaxSize']=UPLOAD_IMAGE_SIZE;
$CONFIG['scrawlMaxSize']=UPLOAD_IMAGE_SIZE;
$CONFIG['catcherMaxSize']=UPLOAD_IMAGE_SIZE;
$CONFIG['videoMaxSize']=UPLOAD_VIDEO_SIZE;
$CONFIG['fileMaxSize']=UPLOAD_FILE_SIZE;
$CONFIG['scrawlUrlPrefix']=ATTACH_URL;
$CONFIG['imageUrlPrefix']=ATTACH_URL;
$CONFIG['snapscreenUrlPrefix']=ATTACH_URL;
$CONFIG['catcherUrlPrefix']=ATTACH_URL;
$CONFIG['videoUrlPrefix']=ATTACH_URL;
$CONFIG['fileUrlPrefix']=ATTACH_URL;
$CONFIG['imageManagerUrlPrefix']=ATTACH_URL;
$CONFIG['fileManagerUrlPrefix']=ATTACH_URL;
return$CONFIG;
}
privatefunction_Upload($action){
$config=$this->_Config();
$up=newLibExtendUpload();
$type='';
switch($action){
case'uploadimage':
$fieldName=$config['imageFieldName'];
$type='image';
break;
case'uploadscrawl':
$fieldName=$config['scrawlFieldName'];
$type='base64';
break;
case'uploadvideo':
$fieldName=$config['videoFieldName'];
$type='video';
break;
case'uploadfile':
default:
$fieldName=$config['fileFieldName'];
$type='file';
break;
}
if($type=='base64'){
$result=$up->saveBase64($fieldName);
}else{
$result=$up->save($fieldName,$type);
}
returnjson_encode($result);
}
privatefunction_list($action){
$config=$this->_Config();
switch($action){
/*列出文件*/
case'listfile':
$allowFiles=$config['fileManagerAllowFiles'];
$listSize=$config['fileManagerListSize'];
break;
/*列出圖片*/
case'listimage':
default:
$allowFiles=$config['imageManagerAllowFiles'];
$listSize=$config['imageManagerListSize'];
}
$allowFiles=substr(str_replace(".","|",join("",$allowFiles)),1);
/*獲取參數*/
$size=isset($_GET['size'])?htmlspecialchars($_GET['size']):$listSize;
$start=isset($_GET['start'])?htmlspecialchars($_GET['start']):0;
$end=$start+$size;
/*獲取文件列表*/
$path=UPLOAD_PATH;
$files=$this->_getfiles($path,$allowFiles);
if(!count($files)){
returnjson_encode(array(
"state"=>"nomatchfile",
"list"=>array(),
"start"=>$start,
"total"=>count($files)
));
}
/*獲取指定范圍的列表*/
$len=count($files);
for($i=min($end,$len)-1,$list=array();$i<$len&&$i>=0&&$i>=$start;$i--){
$list[]=$files[$i];
}
returnjson_encode(array(
"state"=>"SUCCESS",
"list"=>$list,
"start"=>$start,
"total"=>count($files)
));
}
privatefunction_getfiles($path,$allowFiles,&$files=array()){
if(!is_dir($path))returnnull;
if(substr($path,strlen($path)-1)!='/')$path.='/';
$handle=opendir($path);
while(false!==($file=readdir($handle))){
if($file!='.'&&$file!='..'){
$path2=$path.$file;
if(is_dir($path2)){
$this->_getfiles($path2,$allowFiles,$files);
}else{
if(preg_match("/.(".$allowFiles.")$/i",$file)){
$files[]=array(
'url'=>substr($path2,strlen(UPLOAD_PATH)),
'mtime'=>filemtime($path2)
);
}
}
}
}
return$files;
}
privatefunction_crawler(){
$config=$this->_Config();
$fieldName=$config['catcherFieldName'];
$up=newLibExtendUpload();
$source=I($fieldName);
$result=array();
foreach($sourceas$imgUrl){
$item=$up->saveRemote($imgUrl);
array_push($list,array(
"state"=>$item["state"],
"url"=>$item["url"],
"size"=>$item["size"],
"title"=>htmlspecialchars($item["title"]),
"original"=>htmlspecialchars($item["original"]),
"source"=>htmlspecialchars($imgUrl)
));
}
returnjson_encode($result);
}
}
Ⅷ Thinkphp圖片上傳中的savename怎麼設置
savename是保存文件的命名規則,你要保證每次上傳的時候圖片命名不同就可以了,比如用時間time()或者用圖片hash碼等。
Ⅸ ThinkPHP中圖片最多一次上傳20張,怎麼上傳更多圖片
$User->fenxiang_fm = 'Uploads/'.$info[0]["savename"]; // 這里的$info[0]["savename"]的下標[0]表示上傳的第1個圖片按順序,記住是下標
$User->fenxiang_sc = 'Uploads/'.$info[1]["savename"]; // 這里的$info[1]["savename"]的下標[1]表示上傳的第2個圖片按順序,記住是下標
function upload(){
import("ORG.Net.UploadFile");
$upload = new UploadFile();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設置附件上傳大小
$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
$upload->saveRule = time;//這里的時間是根據上傳的圖片的多少來自動改變圖片的名稱的(並且時間都不同,所以上傳的圖片的名稱就不會相同)