| 제목 | 멀티파일업로드 중 퍼미션문제일까요..? | ||
|---|---|---|---|
| 글쓴이 | 세콩 | 작성시각 | 2012/01/17 11:03:32 |
|
|
|||
|
뷰페이지에서 이미지를 3개를 동시에 업로드 하고싶었어요!! 그래서 폼에 input type file 을 3개 넣었죠.. 대략적으로.. 이런식.. <input type="file" name="cam_main_img" /> <input type="file" name="cam_thumb_img" /> <input type="file" name="pre_img" /> 컨트롤러 내용...
function addCampaign() {
try {
// get params.. from post()
$row = $this->input->post();
// 업로드에 실패하면??
if(! $this->common->multiple_upload()) {
echo 'Something went wrong during upload';
}
// 업로드 성공시!!
else {
echo 'Upload success !<br />';
echo '<pre>';
print_r($files);
echo '</pre>';
}
}catch(Exception $e) {
echo $e->getMessage();
}
}
멀티플 업로드 메서드...
function multiple_upload($upload_dir = '/tmp/uploads/project/img', $config = array())
{
$CI =& get_instance();
$files = array();
if(empty($config))
{
$config['upload_path'] = $upload_dir;
$config['allowed_types'] = 'gif|jpg|jpeg|jpe|png';
$config['max_size'] = '2048';
}
$CI->load->library('upload', $config);
$errors = FALSE;
foreach($_FILES as $key => $value)
{
switch ($key){
case "cam_main_img":
case "cam_thumb_img":
$config['upload_path'] = $upload_dir.'/campaign';
echo $config['upload_path'];
break;
case "pre_img":
$config['upload_path'] = $upload_dir.'/present';
echo $config['upload_path'];
break;
}
if( ! $CI->upload->do_upload($key))
{
$data['upload_message'] = $CI->upload->display_errors(); // ERR_OPEN and ERR_CLOSE are error delimiters defined in a config file
$CI->load->vars($data);
echo "<pre>";
print_r($data['upload_message']);
echo "</pre>";
$errors = TRUE;
}
else
{
// Build a file array from all uploaded files
$files[] = $CI->upload->data();
}
}
// There was errors, we have to delete the uploaded files
if($errors)
{
foreach($files as $key => $file)
{
@unlink($file['full_path']);
}
}
elseif(empty($files) AND empty($data['upload_message']))
{
$CI->lang->load('upload');
$data['upload_message'] = $CI->lang->line('upload_no_file_selected');
$CI->load->vars($data);
}
else
{
return $files;
}
}
삽질하면서 중간중간 테스트하려고 코드가 들어가있는데.. 아무튼.. 결과적으로 이런 메세지가 나옵니닷.. /tmp/uploads/project/img/campaign /tmp/uploads/project/img/campaign /tmp/uploads/project/img/present Something went wrong during upload 리눅스서버 디렉토리상의 권한문제일까요?? 나름 한다고 권한설정도 해놓았는데.. 경 로 : /tmp /uploads/ project /img/ 퍼미션 : (777) (750) (750) (750) img 디렉토리 내부 : campaign(776) , present(776) 입니닷.. ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ |
|||
| 다음글 | $_POST 방식을 어떻게 하는거죠? (2) | ||
| 이전글 | 링크 경로 문제 ,, 이번엔 제대로 원인 분석을 해봐야... (5) | ||
|
세콩
/
2012/01/17 14:39:40 /
추천
0
하앜... 곧 자답을 쓸수있을 것같아요..... 후...............
|
|
세콩
/
2012/01/17 14:49:07 /
추천
0
자답입니다..
퍼미션이 776 인상태에서는 파일업로드가 안되었구 777인경우엔 정상적으로 업로드가되었어요 혹시모를 보안을 위해 악성코드실행을 막기위해서 실행권한을 빼었던것이고 파일을 쓰는거에는 지장이 없을거라생각해서 준 퍼미션인데 왜 업로드가 안되는지는 아직도 잘 모르겠습니닷 ㅠㅠ 어쨋든;; 이미지는 이제 업로드를 시키게 되었습니닷!! 자세히보니 정확히 무엇을 물어본것인지를 안적었네요... ㅎㅎ;; ps. 실행퍼미션만 빼었을뿐인데 왜 업로드가 안되었던걸까요..? 개념이 후달려.. ㅠㅠ |
|
라마야나
/
2012/01/18 18:54:09 /
추천
0
디렉토리는 읽기 속성외 실행 속성 까지 줘야 접근이 가능 하기 때문입니다.
|
|
세콩
/
2012/01/18 20:39:59 /
추천
0
아하.. 그렇군여!! 감사합니닷!! (_ _) !!
|