flutter 멀티이미지업로드 질문
안녕하세요
저번에 막힌부분은 임시방편으로 처리했습니다. 감사합니다.
정확히는 지금 시간이 없어서 나중에 고칠려고 합니다.
그리고 이번에 플러터+php(mysql)로 이미지 멀티 업로드에서 막힌부분이 있어서 질문을 드릴려고 합니다.
https://www.youtube.com/watch?v=4wbZxWtjg84&t=1497s
외국 유튜버분 php 코드 참고해서 작성했습니다. 그리고 플러터 코드도 작성후 멀티이미지 업로드 헀습니다.
그런데 저는 이미지가 여러장을 넣어도 한장만 업로드가 됩니다.
그래서 포스트맨으로 php코드를 테스트 해봤습니다.
foreach($fd_media as $key => $value){
echo $key. ": ".$value."<br>";
foreach($tmp_name as $key => $tmp_namevalue){
echo $key. ": ".$tmp_namevalue."<br>";
if(move_uploaded_file($tmp_namevalue, 'media/'.$value)){
chmod('media/'.$value,0777);
$conn->query($sqlm = "INSERT INTO imagedata(fd_id,fd_title,fd_media) VALUES ('".$fd_id."','".$fd_title."','".$value."')");
if($conn){
echo json_encode(array("message" => "Success"));
}else{
echo json_encode(array("message" => "Error ".mysqli_error($sqlm)));
}
}
}
}
key : fd_media
value : fern222.jpg, fern333.jpg
포스트맨 Body값
0: fern333.jpg
<br>0: /tmp/phpW6kGPY
<br>{"message":"Success"}
이미지를 여러장 넣어도 1장만 가져오는데 php코드가 잘못된게 있는건가요?
回答 1
0
뒤에 1장만 print가 되었네요.
다음을 참고하면 여러장 정보 가져오는 부분을 해결할 수 있을 듯 합니다.
https://www.pinkcoding.com/class/web/PHP/uploading-file-attr-multiple/
0
감사합니다.
php코드 수정 후 또 플러터 코드 수정 많이 했습니다.
지금 문제가 발생하여 질문드립니다.
플러터에서 2장을 이미지를 선택하고 작성버튼을 클릭하면
서버에는 이미지2장
DB에 글테이블에 3개의 값이 들어갑니다 그 중 에서 2개는 (id,제목,내용 빈값으로)들어가고 하나만 정상입니다.
그리고 이미지 테이블에는 4개의 값이 들어갑니다. 다 정상적으로 컬럼값이 들어가 있습니다.
플러터 코드입니다.
var request2 = http.MultipartRequest('POST', uri2);
request2.fields['fd_id'] = get_id;
request2.fields['fd_name'] = get_name;
request2.fields['fd_title'] = _titlecontroller.text;
request2.fields['fd_content'] = _contentcontroller.text;
request2.fields['views'] = '0';
for(int i=0; i<_imageFile2.length; i++){
//var pic = await http.MultipartFile.fromPath("fd_media[]", _imageFile2[i].path);
final List<MultipartFile> _files = _imageFile2.map((e) => MultipartFile.fromFileSync(_imageFile2[i].path)).toList();
FormData _formData = FormData.fromMap({
"fd_id_dio": get_id,
"fd_title_dio": _titlecontroller.text,
"fd_media[]": _files
});
//request2.files.add(pic);
print('${_imageFile2[i].path}');
print('${_files}'+'---------------');
var response1 = await dio.post(uri2.toString(), data: _formData);
if(response1.statusCode == 200){
print('이미지 업로드 성공');
}else{
print('이미지 업로드 실패');
}
}
var response = await request2.send();
if(response.statusCode == 200){
print('커뮤니티 업로드 성공');
}else{
print('커뮤니티 업로드 실패');
}
}
0
이미지 갯수만큼 post를 하는 것이 맞나요?
이미지 여러개를 한번의 post 를 하는 것이 맞나요?
위 코드는 1번처럼 동작하고 있는데 로직의 문제는 없는지 확인 해 보시면 어떨까요
0
방금 해결했습니다. 감사합니다.
같은 이미지를 배열에 여러개 담고 나서 post 해서 2장이미지 전달하면 4장이 서버에 저장 되는 현상이 발생하여 코드를 수정했습니다.
그리고 글테이블에 쓸데없는 값이 들어가는 이유가 하나의 php 파일에 코드가 전부있어서 문제가 발생한거같아서 쉬운방법인 텍스트 저장php, 이미지저장php로 나눠서 처리했습니다.
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
fluuter php mysql 글작성
0
435
2
플러터 서버에 이미지 저장하기
0
880
1
오류 질문입니다.
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
467
1
플러터 최적의 폴더 구조를 잡고 싶습니다.
0
1029
1
mainActive.kt 오류
0
318
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

