JAVA文件上传视频|怎样使用javaweb实现上传视频和下载功能

JAVA文件上传视频|怎样使用javaweb实现上传视频和下载功能的第1张示图

『壹』 java视频文件上传,截取图未保存成功,求解!!!

使用ffmpeg,下载ffmpeg相关组件到电脑中,然后用java调用命令的方式(RunTime.exec相关方法),使用ffmpeg的功能。

『贰』 java/web 如何编写视频上传的代码

一般视频文件不要存储到数据库中,因为存储的时候会以二进制流的形式版存储进权去。 视频文件通常上传后存储到文件服务器,如ftp服务器。 思路是这样:1.读取客户端提交的文件流;2.连接ftp服务器,将文件流还原生成视频文件。

『叁』 怎样使用javaweb实现上传视频和下载功能

文件上传就是将客户端资源,通过网路传递到服务器端。

因为文件数据比较大,必须通过文件上传才可以完成将数据保存到数据库端的操作。

文件上传的本质就是IO流操作。

演示:文件上传应该如何操作?

浏览器端:1.method=post 只有post才可以携带大数据2.必须使用<input type='file' name='f'>要有name属性3.encType="multipart/form-data"服务器端:request对象是用于获取请求信息。它有一个方法 getInputStream(); 可以获取一个字节输入流,通过这个流,可以读取到所有的请求正文信息.文件上传原理:浏览器端注意上述三件事,在服务器端通过流将数据读取到,在对数据进行解析.将上传文件内容得到,保存在服务器端,就完成了文件上传。

注意:在实际开发中,不需要我们进行数据解析,完成文件上传。因为我们会使用文件上传的工具,它们已经封装好的,提供API,只要调用它们的API就可以完成文件上传操作.我们使用的commons-fileupload,它是apache提供的一套开源免费的文件上传工具。

代码演示文件上传的原理:

在WebRoot下新建upload1.jsp

[html]view plain

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<title>MyJSP'index.jsp'startingpage</title>

</head>

<body>

<!–encType默认是application/x-www-form-urlencoded–>

<formaction="${pageContext.request.contextPath}/upload1"

method="POST"enctype="multipart/form-data">

<inputtype="text"name="content"><br>

<inputtype="file"name="f"><br><inputtype="submit"

value="上传">

</form>

</body>

</html>

新建Upload1Servlet 路径:/upload1

[java]view plain

packagecn.itcast.web.servlet;

importjava.io.IOException;

importjava.io.InputStream;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

//System.out.println("upload1servlet……");

//通过request获取一个字节输入流,将所有的请求正文信息读取到,打印到控制台

InputStreamis=request.getInputStream();

byte[]b=newbyte[1024];

intlen=-1;

while((len=is.read(b))!=-1){

System.out.println(newString(b,0,len));

}

is.close();

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

}

在浏览器端访问信息如下:

文件上传概述

实现web开发中的文件上传功能,需要完成如下二步操作:

在web页面中添加上传输入项。

在Servlet中读取上传文件的数据,并保存在服务器硬盘中。

如何在web页面中添加上传输入项?

<input type="file">标签用于在web页面中添加文件上传输入项,设置文件上传输入项时注意:

1、必须设置input输入项的name属性,否则浏览器将不会发送上传文件的数据。

2、必须把form的encType属性设为multipart/form-data 设置该值后,浏览器在上传文件时,并把文件数据附带在http请求消息体内,并使用MIME协议对上传的文件进行描述,以方便接收方对上传数据进行解析和处理。

3、表单的提交方式要设置为post。

如何在Servlet中读取文件上传数据,并保存到本地硬盘中?

Request对象提供了一个getInputStream方法,通过这个方法可以读取到客户端提交过来的数据。但由于用户可能会同时上传多个文件,在servlet端编程直接读取上传数据,并分别解析出相应的文件数据是一项非常麻烦的工作,示例。

为方便用户处理文件上传数据,Apache 开源组织提供了一个用来处理表单文件上传的一个开源组件( Commons-fileupload ),该组件性能优异,并且其API使用极其简单,可以让开发人员轻松实现web文件上传功能,因此在web开发中实现文件上传功能,通常使用Commons-fileupload组件实现。

使用Commons-fileupload组件实现文件上传,需要导入该组件相应支撑jar包:Commons-fileupload和commons-io。commo-io不属于文件上传组件的开发jar文件,但Commons-fileupload组件从1.1版本开始,它工作时需要commons-io包的支持。

『肆』 java 怎么上传视频 上传到服务器 然后再读

找个JAVA文件上传的包,或者用Struts的方法,文件存在服务器上,把URL记住,直接在网页上加载就OK

『伍』 java手机上传视频代码

你好

android客户端代码:public class MainActivity extends Activity{private TextView uploadInfo;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);uploadInfo = (TextView) findViewById(R.id.upload_info);uploadFile();}public void uploadFile(){//服务器端地址String url = "http://192.168.0.108:8080/UploadFileServer/upload";//手机端要上传的文件,首先要保存你手机上存在该文件String filePath = Environment.getExternalStorageDirectory()+ "/1/power.apk";AsyncHttpClient httpClient = new AsyncHttpClient();RequestParams param = new RequestParams();try{param.put("file", new File(filePath));param.put("content", "liucanwen");httpClient.post(url, param, new AsyncHttpResponseHandler(){@Overridepublic void onStart(){super.onStart();uploadInfo.setText("正在上传…");}@Overridepublic void onSuccess(String arg0){super.onSuccess(arg0);Log.i("ck", "success>" + arg0);if(arg0.equals("success")){Toast.makeText(MainActivity.this, "上传成功!", 1000).show();}uploadInfo.setText(arg0);}@Overridepublic void onFailure(Throwable arg0, String arg1){super.onFailure(arg0, arg1);uploadInfo.setText("上传失败!");}});} catch (FileNotFoundException e){e.printStackTrace();Toast.makeText(MainActivity.this, "上传文件不存在!", 1000).show();}}}服务器端代码:public class UploadFileServlet extends HttpServlet{public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{response.setContentType("text/html");PrintWriter out = response.getWriter();// 创建文件项目工厂对象DiskFileItemFactory factory = new DiskFileItemFactory();// 设置文件上传路径String upload = this.getServletContext().getRealPath("/upload/");// 获取系统默认的临时文件保存路径,该路径为Tomcat根目录下的temp文件夹String temp = System.getProperty("java.io.tmpdir");// 设置缓冲区大小为 5Mfactory.setSizeThreshold(1024 * 1024 * 5);// 设置临时文件夹为tempfactory.setRepository(new File(temp));// 用工厂实例化上传组件,ServletFileUpload 用来解析文件上传请求ServletFileUpload servletFileUpload = new ServletFileUpload(factory);// 解析结果放在List中try{List<FileItem> list = servletFileUpload.parseRequest(request);for (FileItem item : list){String name = item.getFieldName();InputStream is = item.getInputStream();if (name.contains("content")){System.out.println(inputStream2String(is));} else if(name.contains("file")){try{inputStream2File(is, upload + "\" + item.getName());} catch (Exception e){e.printStackTrace();}}}out.write("success");} catch (FileUploadException e){e.printStackTrace();out.write("failure");}out.flush();out.close();}// 流转化成字符串public static String inputStream2String(InputStream is) throws IOException{ByteArrayOutputStream baos = new ByteArrayOutputStream();int i = -1;while ((i = is.read()) != -1){baos.write(i);}return baos.toString();}// 流转化成文件public static void inputStream2File(InputStream is, String savePath)throws Exception{System.out.println("文件保存路径为:" + savePath);File file = new File(savePath);InputStream inputSteam = is;BufferedInputStream fis = new BufferedInputStream(inputSteam);FileOutputStream fos = new FileOutputStream(file);int f;while ((f = fis.read()) != -1){fos.write(f);}fos.flush();fos.close();fis.close();inputSteam.close();}}

追问

谢谢。手机上传过来的东东是在哪个变量里面的。这个方法我有在网上找到,就是不知道要怎么用,看起来怎么觉得没有一个变量是跟客户端打交道了。IOS的要怎么用

回答

首先你得在客户端选中一个文件把,apk iph啥的 然后点击“上传” 就请求了String url = "http://192.168.0.108:8080/UploadFileServer/upload"; 一个url对吧 然后就以流的方式把文件传输过去,你再用spring 类似这段代码 “@RequestMapping("/uploadPage") @ResponseBody public String uploadPage(Long id,@RequestParam("userfile") CommonsMultipartFile mFile){”,接下来就是里边具体内容的处理了,上面的例子是普通的servlet。如果用spring框架就套用这个。

追问

谢谢!我有用Spring框架,不过还不是很明白你说的,能不能再说详细一点,还有这几个注解要导入什么包。Spring学的不是很多我查过了,网上说是Struts2的过滤器过滤没了,所以List<FileItem> list = servletFileUpload.parseRequest(request);一直为空。然后把/*改成*.action就又报错了

回答

哦 我用的这是spring mvc struts2用的太早了,不记得了。反正中心思想就是提交流媒体到java服务端,能获得二进制流就行 剩下的就是你怎么运用框架了,具体你查查struts2的上传如何使用。

『陆』 用java怎么实现从前端接收、处理并传回视频

1、接收前端上传的文件

/**

* 接收多文件

*/

@RequestMapping("/upload")

public R uploadFile(@RequestParam Map<String, Object> params, HttpServletRequest request) {

// 复杂类型的request对象

MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;

// 获取文件名集合放入迭代器

Iterator<String> files = mRequest.getFileNames();

while (files.hasNext()) {

// 获取上传文件的对象

MultipartFile mFile = mRequest.getFile(files.next());

if (mFile != null) {

//原始文件名称

String oldfile = mFile.getOriginalFilename();

//文件后缀

String suffix = oldfile.substring(oldfile.indexOf('.'), oldfile.length());

String suffix2 = oldfile.substring(oldfile.indexOf('.')+1, oldfile.length());

/***************文件处理*********************/

}

}

}

2.接收前端上传的文件

/**

* 接收附件

* @param request

* @return

*/

@ResponseBody

@RequestMapping(value="fileupload",method=RequestMethod.POST)

public void springUpload(HttpServletRequest request) {

//将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)

CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(

request.getSession().getServletContext());

//检查form中是否有enctype="multipart/form-data"

if(multipartResolver.isMultipart(request)) {

//将request变成多部分request

MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;

//获取multiRequest 中所有的文件名

Iterator iter=multiRequest.getFileNames();

while(iter.hasNext()){

//一次遍历所有文件

MultipartFile file=multiRequest.getFile(iter.next().toString());

//最初上传文件名的文件名

String oldFilename = file.getOriginalFilename();

//获取初始文件名后缀

String fileSuffix = oldFilename.substring(oldFilename.lastIndexOf(".") +1);

/***************文件处理*********************/

}

}

3.接收前端上传的文件

/**

* 接收文件

*

*

* @param model

* @return

* @throws IOException

* @throws IllegalStateException

*/

@RequestMapping(value = "imageupload")

public void imageUpload(MultipartFile file) throws IllegalStateException, IOException {

//文件名称

String realFileName = file.getOriginalFilename();

//文件后缀

String suffix = realFileName.substring(realFileName.lastIndexOf(".") + 1);

/***************文件处理*********************/

}

『柒』 java怎么实现视频上传

方法/步骤

1

首先这里jsp页面的代码 定义布局文件html的 如图所示

『捌』 java 如何上传大文件 如 工具或是视频文件

要是实在你看不懂,我写了最简单的文件操作,是在本地之间复制文件。思路是一样的,只不过文件路径变成网络路径,里面还有写文件和目录操作。<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.io.*" %>

『玖』 java web 项目如何实现视频上传然后播放功能

搞清楚两个问题:上传到自己的服务器还是第三方平台?播放器实用Flash还是H5播放器?如果是上传到自己的服务器,使用H5播放。那上传视频就和普通的文件上传一样。都是通过Http上传。前端可以使用form表单上传也可以使用ajax异步上传。后台可以使用apache的Common-fileUpload工具来解析并保存文件。然后生成一个访问路径。将访问路径返回给前端的 video标签的src属性即可。通过几个简单的属性或脚本就能控制播放。如果是上传到第三方平台,例如腾讯视频、爱奇艺、优酷等。他们都有开发者平台或者开放平台。一般都有一些jar工具类或者模板案例提供给你的。你上传之后,也有返回路径给你。这是一般都是嵌入它们的Flash插件。所以你只需要将那段Flash插件的HTML代码放入你的网页中就可以播放了。好处是,不需要自己存储。不需要准备播放器。坏处是,可能有广告。不是可能。是一定会有。

『拾』 java 项目开发 实现上传视频。

上传视频?只是上传的话,相当于,上传文件了html如下<form action="MultipartTestServlet" enctype="multipart/form-data" method="post"> <input type="text" name="username" /><br /> <input type="file" name="myfile" /><br/> <input type="submit" /> </form>java如下MultipartTestServlet.javapackage com.bug.servlet;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUpload;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.RequestContext;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.servlet.ServletRequestContext;public class MultipartTestServlet extends HttpServlet { public MultipartTestServlet() { super(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("gbk"); RequestContext requestContext = new ServletRequestContext(request); if(FileUpload.isMultipartContent(requestContext)){ DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(new File("c:/tmp/")); ServletFileUpload upload = new ServletFileUpload(factory); //upload.setHeaderEncoding("gbk"); upload.setSizeMax(2000000); List items = new ArrayList(); try { items = upload.parseRequest(request); } catch (FileUploadException e1) { System.out.println("文件上传发生错误" + e1.getMessage()); } Iterator it = items.iterator(); while(it.hasNext()){ FileItem fileItem = (FileItem) it.next(); if(fileItem.isFormField()){ System.out.println(fileItem.getFieldName() + " " + fileItem.getName() + " " + new String(fileItem.getString().getBytes("iso8859-1"), "gbk")); }else{ System.out.println(fileItem.getFieldName() + " " + fileItem.getName() + " " + fileItem.isInMemory() + " " + fileItem.getContentType() + " " + fileItem.getSize()); if(fileItem.getName()!=null && fileItem.getSize()!=0){ File fullFile = new File(fileItem.getName()); File newFile = new File("c:/temp/" + fullFile.getName()); try { fileItem.write(newFile); } catch (Exception e) { e.printStackTrace(); } }else{ System.out.println("文件没有选择 或 文件内容为空"); } } } } }}web.xml中加入 <servlet> <servlet-name>MultipartTestServlet</servlet-name> <servlet-class>com.bug.servlet.MultipartTestServlet</servlet-class> </servlet>需要的包到这三个地方下载http://jakarta.apache.org/commons/fileupload/下载http://jakarta.apache.org/commons/io/下载在http://www.servlets.com/cos/下载 关于视频的播放,你只能自己再去找了

未经允许不得转载:山九号 » JAVA文件上传视频|怎样使用javaweb实现上传视频和下载功能

赞 (0)