php - 无法将视频从flutter上传到服务器php?

标签 php flutter

我尝试上传视频。收到消息“视频已上传”,并且“上传”文件夹中没有收到视频文件。当我尝试上传图像文件时,它起作用了(上传的图像文件已到达“上传”文件夹)。我的代码不适用于视频文件。如何让它接收视频文件?

这是一个 dart 文件。

import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:image_picker/image_picker.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Upload MySQL',
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  File _video;

  Future getVideoGallery() async{
    var imageFile = await ImagePicker.pickVideo(source: ImageSource.gallery);

    setState(() {
      _video = imageFile;
    });
  }

  Future getVideoCamera() async{
    var imageFile = await ImagePicker.pickVideo(source: ImageSource.camera);
            setState(() {
      _video = imageFile;
    });
  }

  Future uploadVideo(File videoFile) async{
    var uri = Uri.parse("http://192.168.1.1/ABC/uploadVideo.php");
    var request = new MultipartRequest("POST", uri);

    var multipartFile = await MultipartFile.fromPath("video", videoFile.path);
    request.files.add(multipartFile);
    StreamedResponse response = await request.send();
    response.stream.transform(utf8.decoder).listen((value) {
      print(value);
    });
    if(response.statusCode==200){
      print("Video uploaded");
    }else{
      print("Video upload failed");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Upload Image"),),
      body: SingleChildScrollView(
        child: Column(
          children: <Widget>[
           _video==null
              ? new Text("No video selected!")
              : new Text("video is selected"),
            Row(
              children: <Widget>[
                RaisedButton(
                  child: Icon(Icons.video_library),
                  onPressed: getVideoGallery,
                ),
                RaisedButton(
                  child: Icon(Icons.videocam),
                  onPressed: getVideoCamera,
                ),
                RaisedButton(
                  child: Text("UPLOAD video"),
                  onPressed:(){
                    uploadVideo(_video);
                  },
                ),
              ],
            )
          ],
        ),
      ),
    );
  }
}

这是 php 文件。

<?php

include 'conn.php';

$video=$_FILES['video']['name'];
$videoPath="uploads/".$video;
move_uploaded_file($_FILES['video']['tmp_name'],$videoPath);

?>

最佳答案

好吧,终于,我找到了解决方案。也就是在php.ini中增加上传限制。 我可以上传图像,但不能上传视频,因为视频文件大于最大上传限制的 2MB。

关于php - 无法将视频从flutter上传到服务器php?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57028399/

相关文章:

php - 将 mysql 值分配到多维数组中

android - 如何在 Flutter 中删除 Firebase 云消息传递 token

dart - 在 lib 目录外导入 dart 文件

android - 未处理的异常:DioError PONSE]:Http状态错误[500]

php - 如何确定网页上的哪些文本将呈现最大?

php - 执行很长的 SQL 结果后突然停止

php - 检查密码值是否相同

flutter - 如何在 Flutter 应用程序中创建响应式网格?

android - 如何在Flutter中对列表进行排序

php - 在mysql获取数据中添加超链接