ThinkPHP 프레임 워 크 구현 FTP 이미지 업로드 기능 예시
배경:
사진 업로드 기능 은 매우 보편적 인 것 일 것 입 니 다.여기 서 ThinkpHP 프레임 워 크 의 통합 방법 을 참고 하여 FTP 사진 의 업로드 기능 을 정리 하 였 습 니 다.이렇게 하면 배경 에서 조작 할 때 관련 사진 을 온라인 이미지 서버 에 직접 업로드 하여 대 유량 방문 사진 의 로드 가 느 리 지 않도록 사이트 의 방문 압력 을 낮 추고 불합리한 점 을 지적 해 주 십시오.
동작:
1.전단 설계
여 기 는 주로 테스트 기능 의 실현 을 위해 가장 간단 한 디자인 을 사용 하여 참고 하기 편리 할 뿐만 아니 라 후기의 기능 확장 에 도 유리 하 다.아래 에 upload.html 의 주요 코드 를 첨부 하고 빨간색 상자 에 동 그 라 미 를 친 코드 에 중심 을 두 고 있 습 니 다.그 중에서 css 스타일 이 비교적 간단 합 니 다.필요 한 것 은 뒤의 소스 코드 를 참고 할 수 있 습 니 다.
2.백 스테이지 컨트롤 러 디자인
config.class.phop 의 주요 코드 는 다음 과 같 습 니 다.그 중에서 디자인 된 표'conf'는 여기 서 두 필드 만 사용 하면 됩 니 다.'tag','value'는 간단 한 varchar 형식 을 사용 할 수 있 습 니 다.
public function upload(){
if (IS_POST){
foreach ($_FILES as $key => $value){
$img = handleImg($key);
$furl = C('REMOTE_ROOT').$img;
if ($img){
ftp_upload($furl,$img);
$saveData['value'] = $img;
M('conf')
->where("tag = '".$key."'")
->save($saveData);
}
}
$this->success('FTP ',U('Config/upload'),2);
}else{
$imgUrl = M('conf')
->where("tag = 'upImg'")
->getField('value');
$this->assign('imgUrl',$imgUrl);
$this->display();
}
}
3.데이터 설정공공 프로필 에서 다음 과 같은 상수 의 데이터 설정 을 진행 합 니 다.코드 는 다음 과 같 습 니 다.FTP 계 정과 비밀번호 의 정확성 을 설정 하 는 것 에 주의 하 십시오.여기 서 안전 한 것 은 예 일 뿐 입 니 다.
//ftp( )
'FTP_SEVER' => 'http://img.52zhenmi.com', // ,
'FTP_HOST' => 'img.52zhenmi.com',
'WEB_SEVER' => 'http://img.52zhenmi.com',
'WEB_M_SERVER' => 'http://www.52zhenmi.com/m',
'FTP_NAME' => 'fexxxi',//ftp
'FTP_PWD' => '1qxxxxxxw',//ftp
'FTP_PORT' => '21',//ftp , 21
'FTP_PASV' => true,// ,true ,
'FTP_SSL' => false,//ssl ,
'FTP_TIMEOUT' => 60,// , 60, s
'REMOTE_ROOT' => '/',//
4.파일 도입제 코드 를 예 로 들 면 두 개의 파일 을 인 용 했 습 니 다.그 중 FTP.class.php 는'/Library/Think'디 렉 터 리 에 놓 여 있 습 니 다.Upload.class.php 는'/Library/Org/Net'디 렉 터 리 에 놓 여 있 으 며,자신의 사용 습관 에 따라 디 렉 터 리 를 스스로 조정 할 수 있 으 며,예화 경 로 를 확보 할 때 문제 가 없 으 면 됩 니 다.
5.공통 함수 추가
위의 단계 2 에서 사용 한 공공 함 수 를 추가 하 는 것 을 주의 하 십시오.
/**
*
* @param string $fileName name
* @return string
*/
function handleImg($fileName){
if($_FILES[$fileName]['tmp_name'] != ""){
$img = $_FILES[$fileName];
$imgUrl = __ROOT__."/public";
$upload = new \Org\Net\Upload($img, $imgUrl);
return $upload->main();
}
}
//FTP
function ftp_upload($remotefile,$localfile){
$ftp = new \Think\Ftp();
$data['server'] = C('FTP_HOST');
$data['username'] = C('FTP_NAME');//ftp
$data['password'] = C('FTP_PWD');//ftp
$data['port'] = C('FTP_PORT');//ftp , 21
$data['pasv'] = C('FTP_PASV');// ,true ,
$data['ssl'] = C('FTP_SSL');//ssl ,
$data['timeout'] = C('FTP_TIMEOUT');// , 60, s
$info = $ftp->start($data);
if($info){
if($ftp->put($remotefile,$localfile)){}
}
$ftp->close();
}
6.조작 캡 처7.힌트
이 참고 코드 에 대해 관련 된 공공 방법
handleImg()
은 업로드 해 야 할 사진 을 현재 작 동 하 는 사이트 루트 디 렉 터 리 에 먼저 전송 한 다음 에ftp_upload()
을 통 해 해당 하 는 이미지 FTP 서버 에 사진 을 전송 합 니 다.실현 절차 에서 볼 때 첫 번 째 단 계 는 불필요 합 니 다.주로 개발 과정 에서 테스트 서버 가 FTP 계 정 요구 에 부합 되 지 않 습 니 다.또한 온라인 콘 텐 츠 수정 을 편리 하 게 하고 최적화 되 지 않 았 으 며 번 거 롭 지 않 습 니 다.여러분 들 이 자 유 롭 게 발휘 할 수 있 는 기 회 를 남 겨 두 는 셈 입 니 다.원본 코드 는 여 기 를 클릭 하 십시오본 사이트 다운로드.
thinkpHP 와 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.,,,,,ThinkpHP 입문 강좌,thinkpHP 템 플 릿 조작 기법 요약,ThinkPHP 상용 방법 총화,codeigniter 입문 강좌,CI(CodeIgniter)프레임 워 크 진급 강좌과Zend FrameWork 프레임 워 크 입문 강좌.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ThinkPHP5 일반 데이터 작업1. 데이터베이스는:thinkphp5, 새 데이터 테이블think_test 2.\application\database.php에서 수정 3.\application\index\model 다음에 새 모델 파일 테스트.ph...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.