제목 | 쇼핑몰에서 파일 업로드 할떄... | ||
---|---|---|---|
글쓴이 | 람이 | 작성시각 | 2014/10/20 09:25:26 |
|
|||
<form action="file-upload.php" method="post" enctype="multipart/form-data"> 이 파일들을 전송합니다:<br /> <input name="userfile[]" type="file" /><br /> <input name="userfile[]" type="file" /><br /> <input type="submit" value="파일 전송" /> </form> 이런식에 대해서는 많은 자료가 있는데... <form action="file-upload.php" method="post" enctype="multipart/form-data"> 이 파일들을 전송합니다:<br /> <input name="userfile1" type="file" /><br /> <input name="userfile2" type="file" /><br /> <input type="submit" value="파일 전송" /> </form> 이런식으로 파일을 처리하는거는 잘 못 찾겠어요.. 1. 컨트롤러단만 예시가 있으면 이해를 할 수 있을 것 같은데 ? 2. 중복된 파일을 처리하는건 어떻게 하나요 ? 3. 저장될때 파일명을 바꿔 저장하는건 어떻게 하나요 ? 4. 이미지의 사이즈를 비율적으로 강제로 줄이려면 (썸네일 만들고자) 어떻게 하나요 ? |
|||
다음글 | 모델 $this->db 처리 인식문제. (7) | ||
이전글 | oauth 구현관련 질문입니다. (3) | ||
수야디벨
/
2014/10/20 09:50:13 /
추천
0
|
람이
/
2014/10/20 10:06:44 /
추천
0
수야디벨님 감사합니다.
아직 링크를 가보지 않았지만 빠른 답변 주셔서 감사합니다. |
kaido
/
2014/10/20 10:14:54 /
추천
0
저도 사실 이전부터 궁금했던건데...
설정을 초기화 하고 다시 업로드를 한다면 name= 'userfile1 이걸 먼저 처리하고 userfile2 다음에 이걸 처리 한다는 말씀인가요? userfile1 = 파일있음 userfile2 = 파일없음 userfile3 = 파일있음 이 경우에는 어떻게 구분해서 처리 하면 되나요? 그리고 1 2 3 번 전부 각기 다른 설정을 사용해야 합니다. |
람이
/
2014/10/20 10:32:18 /
추천
0
<form method="post" action="uploader/go" enctype="multipart/form-data">
<input type="file" name="image1" /><br />
<input type="file" name="image2" /><br />
<input type="file" name="image3" /><br />
<input type="file" name="image4" /><br />
<input type="file" name="image5" /><br />
<input type="submit" name="go" value="Upload!!!" />
</form>
class Uploader extends Controller { function go() { if(isset($_POST['go'])) { /* Create the config for upload library */ /* (pretty self-explanatory) */ $config['upload_path'] = './assets/upload/'; /* NB! create this dir! */ $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg'; $config['max_size'] = '0'; $config['max_width'] = '0'; $config['max_height'] = '0'; /* Load the upload library */ $this->load->library('upload', $config); /* Create the config for image library */ /* (pretty self-explanatory) */ $configThumb = array(); $configThumb['image_library'] = 'gd2'; $configThumb['source_image'] = ''; $configThumb['create_thumb'] = TRUE; $configThumb['maintain_ratio'] = TRUE; /* Set the height and width or thumbs */ /* Do not worry - CI is pretty smart in resizing */ /* It will create the largest thumb that can fit in those dimensions */ /* Thumbs will be saved in same upload dir but with a _thumb suffix */ /* e.g. 'image.jpg' thumb would be called 'image_thumb.jpg' */ $configThumb['width'] = 140; $configThumb['height'] = 210; /* Load the image library */ $this->load->library('image_lib'); /* We have 5 files to upload * If you want more - change the 6 below as needed */ for($i = 1; $i < 6; $i++) { /* Handle the file upload */ $upload = $this->upload->do_upload('image'.$i); /* File failed to upload - continue */ if($upload === FALSE) continue; /* Get the data about the file */ $data = $this->upload->data(); $uploadedFiles[$i] = $data; /* If the file is an image - create a thumbnail */ if($data['is_image'] == 1) { $configThumb['source_image'] = $data['full_path']; $this->image_lib->initialize($configThumb); $this->image_lib->resize(); } } } /* And display the form again */ $this->load->view('upload_form'); } } |
kaido
/
2014/10/20 14:01:15 /
추천
0
$upload = $this->upload->do_upload('image'.$i);
여기에다 넣고 구분 하는 거였군요. 이걸 몰라서 여태 각기 다른 업로드 사용시 그냥 하드코딩 형태로 만들어서 사용했었지요. 오늘 득 코드를 해서 살짝 기분 +1 |
그렇다면 하나의 파일을 올리고
$this->upload->initialize($config); 를 이용하셔서 설정값을 초기화 하신후
다시 파일업로드를 하시면 됩니다.
즉 코드이그나이터 파일업로드를 두번 하는거에요.
http://codeigniter-kr.org/user_guide_2.1.0/libraries/file_uploading.html
참고해보세요
그리고 이미지 처리는
http://codeigniter-kr.org/user_guide_2.1.0/libraries/image_lib.html
참고하시구요