php - 无法将视频从颤振上传到服务器 php?
问题描述
我尝试上传视频。收到消息“视频已上传”,并且“上传”文件夹中没有收到视频文件。当我尝试上传图像文件时,它可以工作(上传的图像文件已到达“上传”文件夹)。我的代码不适用于视频文件。如何让它接收视频文件?
这是一个飞镖文件。
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。
推荐阅读
- node.js - 将 Angular 更新到版本 8 后出现错误
- python - 在检查符号是 BTC 后,我想访问美元下的价格值
- php - 如何计算laravel中的订单总和?
- r - 如何使用 Matching 包中的 Mahalanobis 距离进行匹配
- python-3.x - 当其中一个容器挂载到文件系统时,如何连接两个容器?
- android - HashMap 不会写入和读取我想要的所有内容
- java - JpaRepositories 的 UnsatisfiedDependencyException
- visual-studio-code - 如何将 VS-Code 选项卡设置从“更改焦点”更改为“添加空格”?
- ruby-on-rails - 如果没有记录值,如何在 options_for_select 中有空白值,如果记录存在则显示选择的值?
- javascript - 如何在点击 [JS] 上获取元素的 id