inflearn logo
강의

Course

Instructor

Flutter Beginner - Http Communication, State Management

플러터 서버에 이미지 저장하기

Resolved

880

chorokdosi

8 asked

0

안녕하세요 강사님

 

제가 지금 플러터로 서버에 이미지 저장할려고 합니다. 그래서 강사님 유튜브(https://www.youtube.com/watch?v=Cz55mcHG6Xk )에 있어서 참고할려고했는데 서버를 php로 해서 php로 어떻게 적어야 할지 고민하다가 찾다보니 나온게 밑에 유튜브링크입니다.

https://www.youtube.com/watch?v=g8WEXj6xvsY 이걸 따라헀는데 안되더라고요 제가 작성한게 문제인건지 아니면 저분께 지금 안되는건지 모르겠습니다.

flutter ios Flutter 웹앱 android

Answer 1

0

survivalcoding

뭐가 어떻게 안 되는지에 대한 구체적인 내용이 없어서 뭐라고 답을 해 드리기가 어렵습니다.

그런데 유튜브 영상 봤는데 잘 따라하면 될 것 같습니다.

0

chorokdosi

 php DB쿼리문 수정하니 작동은 하는데 서버에 이미지가 들어가지 않습니다. 그리고 DB에는 media는 ..으로 들어갑니다 

플러터 saveImage함수에 있는 if문에서 이미지 업로드 성공으로 들어가는데 php가 문제인가요? 아니면 플러터 코드에서 잘못된건가요?

 

<?php

include('db_setup.php');

 

$media = $_FILES['media']['name'];

$name = $_POST['name'];

 

$imagePath = 'media/'.$media;

$tmp_name = $_FILES['media']['tmp_name'];

 

move_uploaded_file($tmp_name, $imagePath);

 

$result = $conn->query("INSERT INTO filedata(name,media) VALUES('.$name.','.$media.')");

$count = mysqli_num_rows($result);

 

$conn->close();

 

?>

 

 Future saveImage() async {

    final uri = Uri.parse('http://ip주소/upload.php');

    var request = http.MultipartRequest('POST', uri);

    request.fields['name'] = _titlecontroller.text;

    var pic = await http.MultipartFile.fromString('iamgeFile', _imageFile!.path);

    request.files.add(pic);

    var response = await request.send();

 

    if(response.statusCode == 200){

      print('이미지 업로드 성공');

    }else{

      print('이미지 업로드 실패');

    }

  }

0

survivalcoding

코드만으로는 원인을 알 수 없지요. 에러 메시지를 통해서 어떤 문제가 있는지 파악이 되니까요.

이미지 저장이 안 된다는 것은 move_uploaded_file() 부분에 문제가 있는 것 같으니 살펴보시지요.

name, 과 media 가 비어 있는게 원인일 수 있겠군요.

0

chorokdosi

name은 수정해서 값이 잘들어갑니다. 그런데 아직도 media는 DB값이 ..으로 들어갑니다 그리고 서버에는 이미지가 들어가지 않습니다. 오류뜨는건 없습니다. 

  var pic = await http.MultipartFile.fromString('iamgeFile', _imageFile!.path); 에서 String을 Path로 고쳐 봤지만 var pic = await http.MultipartFile.fromPath('media', _imageFile!.path); 이미지가 들어가지 않네요. move_uploaded_file() 에서는 뭐가 문제인지 잘모르겠습니다.

0

survivalcoding

서버 코드는 유튜브 참고하여 postman 으로 테스트 해 보시면 이미지가 잘 저장되는지 확인 가능합니다. 잘 된다면 서버 문제는 아닙니다. 그럼 플러터 문제겠지요.

저장이 안되면 서버 문제겠지요.

0

chorokdosi

포스트맨 했는데 서버에 이미지가 들어가지 않습니다. 서버가 문제 인거 같은데 어떤문제 인건가요? 서버는 아마존EC2 사용하고 있습니다.

0

survivalcoding

실서버에서 테스트하면 에러메시지 확인도 어려우니까 서버쪽 코드를 로컬에서 확실히 테스트하시고 아마존에 올려보시는 것이 좋지 않나 싶습니다.

0

chorokdosi

move_uploaded_file(): The second argument to copy() function cannot be a directory in

move_uploaded_file(): Unable to move '/tmp/phpomBmOK' to 'media/' in

postman 키값을 file로 따라해서 오류가없었습니다. 제가 쓴 media로 하니 위에 2개의 오류가 나타났습니다.

첫번째 오류는 두 번째 인수는 디렉토리가 될 수 없습니다.이고

두번째 오류는 /tmp/phpomBmOK'를 'media/'로 이동할 수 없습니다. 입니다.

어떻게 고쳐야 할까요? 두번째 오류는 aws(EC2)서버(프리티어)에서 처리해야하는 건가요?

0

survivalcoding

해당 에러 검색하면 많은 사례가 나옵니다.

첫번째는 https://blog.naver.com/apchima/80101662830 참고 해 보세요.

두번째도 검색 해 보시면 다양한 경우가 있으니 확인해 보시면 좋겠고요, aws 쪽에서 디렉토리나 파일 생성 권한 같은 것도 보셔야 할 것 같습니다.

0

chorokdosi

오류 고치니 해결됬습니다. 감사합니다.

ListenableBuilder가 안되요..material import 했는데도 자동완성이 안뜨고 빨간줄이 뜨네요 ..

0

150

2

pubspec.yaml 파일에서 Pub get이 안됩니다.

0

889

1

[네이티브연동 관련 질문]

0

334

1

네이티브코드 연동할때 네이티브 디버깅은 어떻게 하나요?

0

477

1

CartBloc 대체 코드 올립니다.

0

455

2

강사님처럼 코드가 화면 범위 밖으로 나갔을 때 자동으로 줄바꿈은 어떻게 하나요?

0

969

1

ShowSnackBar Undefined 오류

0

419

1

null 관련 오류

0

318

1

화면새로고침 질문.

0

1491

1

flutter 멀티이미지업로드 질문

0

686

1

fluuter php mysql 글작성

0

435

2

오류 질문입니다.

0

258

1

강의를 보다 listview 기능에 의문이 생겨 질문드립니다.

0

748

1

inheritedFromWidgetOfExactType 가 없습니다.

0

231

1

The operator '<' can't be unconditionally invoked because the receiver can be 'null'.

0

1114

1

해결이 어려운 부분이 있습니다 ㅠㅠ

0

1243

2

네이티브코드 연동 AS 21.11.11 update 영상 중

0

213

1

특정 함수로의 객체 전달 방법 문의 드립니다.

0

466

1

플러터 최적의 폴더 구조를 잡고 싶습니다.

0

1029

1

mainActive.kt 오류

0

317

1

xcode 오류가 납니다.

0

360

1

dart 2.12 이상 버전에서 json object null safety 처리는 어떻게 하나요?

0

631

1

json to dart

0

177

1

no sound null safety 오류

0

199

1