颤振图像上传在真实设备上不起作用,虽然它适用于模拟器
Posted
技术标签:
【中文标题】颤振图像上传在真实设备上不起作用,虽然它适用于模拟器【英文标题】:flutter image upload doesnt work on real device altough It works on emulator 【发布时间】:2021-05-10 04:57:07 【问题描述】:这是我用来将图像上传到数据库的功能。它在模拟器上正常工作,但是当我尝试使用我的真实设备时它不起作用。(我允许互联网许可)
Future uploadImage() async
final SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
var userimidd = sharedPreferences.getString('id');
DateTime now = DateTime.now().toLocal();
String tarih = "$now.day_$now.month_$now.year:$now.hour + 3:$now.minute";
final uri = Uri.parse("http://MY IP/uploadavatar.php");
var request = http.MultipartRequest('POST', uri);
request.fields['userid'] = userimidd;
String allofthem = '$userimidd__$now.day_$now.month_$now.year_$now.minute_$now.second_$now.microsecond.jpg';
request.fields['useravatarextension'] = allofthem;
var pic = await http.MultipartFile.fromPath("image",_image.path,filename: allofthem);
request.files.add(pic);
var response = await request.send();
if (response.statusCode == 200)
print('Image successfully uploaded');
else
print('Something bad happened');
这是我的 api 源代码;
$image = $_FILES['image']['name'];
$userid = $_POST['userid'];
$useravatarextension = $_POST['useravatarextension'];
$imagePath = 'uploads/'.$image;
$tmp_name = $_FILES['image']['tmp_name'];
move_uploaded_file($tmp_name,$imagePath);
$db->query("UPDATE users SET user_picture = 'http://MY IP/uploads/$useravatarextension' WHERE userid = '".$userid."'");
第二个代码($db-> 查询)有效,但没有上传...
【问题讨论】:
【参考方案1】:我遇到了同样的问题,发现问题出在图像尺寸上(因为真实设备的图像尺寸很大)。所以告诉你的后端团队来处理图像尺寸。
【讨论】:
谢谢老兄,我同时处理后端和前端。我进入 PHP.ini 并将最大上传大小从 2 MB 设置为 40MB :D 它有效【参考方案2】:添加一个 alse 条件,即
if(response.statuscode == 200)
// print(result)
else
print(response.statucode)
然后在设备中运行。记下错误状态代码。从中我们可以调试导致相同问题的问题。
【讨论】:
以上是关于颤振图像上传在真实设备上不起作用,虽然它适用于模拟器的主要内容,如果未能解决你的问题,请参考以下文章
iOS setContentOffset 在 ipad 上不起作用
界面生成器 UIButton 自定义背景图像在模拟器/设备上不起作用
NSUserDefaults 在 IOS 8 模拟器上不起作用 [重复]