플러터 서버에 이미지 저장하기
안녕하세요 강사님
제가 지금 플러터로 서버에 이미지 저장할려고 합니다. 그래서 강사님 유튜브(https://www.youtube.com/watch?v=Cz55mcHG6Xk )에 있어서 참고할려고했는데 서버를 php로 해서 php로 어떻게 적어야 할지 고민하다가 찾다보니 나온게 밑에 유튜브링크입니다.
https://www.youtube.com/watch?v=g8WEXj6xvsY 이걸 따라헀는데 안되더라고요 제가 작성한게 문제인건지 아니면 저분께 지금 안되는건지 모르겠습니다.
Answer 1
0
뭐가 어떻게 안 되는지에 대한 구체적인 내용이 없어서 뭐라고 답을 해 드리기가 어렵습니다.
그런데 유튜브 영상 봤는데 잘 따라하면 될 것 같습니다.
0
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
코드만으로는 원인을 알 수 없지요. 에러 메시지를 통해서 어떤 문제가 있는지 파악이 되니까요.
이미지 저장이 안 된다는 것은 move_uploaded_file() 부분에 문제가 있는 것 같으니 살펴보시지요.
name, 과 media 가 비어 있는게 원인일 수 있겠군요.
0
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
서버 코드는 유튜브 참고하여 postman 으로 테스트 해 보시면 이미지가 잘 저장되는지 확인 가능합니다. 잘 된다면 서버 문제는 아닙니다. 그럼 플러터 문제겠지요.
저장이 안되면 서버 문제겠지요.
0
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
해당 에러 검색하면 많은 사례가 나옵니다.
첫번째는 https://blog.naver.com/apchima/80101662830 참고 해 보세요.
두번째도 검색 해 보시면 다양한 경우가 있으니 확인해 보시면 좋겠고요, aws 쪽에서 디렉토리나 파일 생성 권한 같은 것도 보셔야 할 것 같습니다.
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

