最近有个需求,就是在用户上传文件后,对文件的格式进行转换。如用户上传一个mpg格式的视频文件,需要将其转换为flv格式的视频文件。我最初的想法是,当用户上传视频文件后,如果该视频文件不是flv格式的,另起一个线程,对该视频文件进行格式转换。具体实现如下: public void upLoadFile() {
//upload the file here ...
...
// 文件上传成功后,得到文件的后缀名suffix
if(!suffix.toLowerCase().equals(".flv")) {
// 另起线程进行格式转换
new Thread(new Runnable() {
public void run() {
FormatConvert fc = new FormatConvert("文件路径");
fc.runConvert();
}
}).start();
}
// 将上传的文件信息插入数据库中,并返回信息到前端
... 其中FormatConvert类是自定义的格式转换类,使用Jave包将不是flv格式的视频文件转换为flv格式的视频文件。该程序不能正常运行,单步调试的时候,会在DefaultActionInvocation.class中说source not found,然而如果
不在run方法里new FormatConvert类,只是简单的打印一些信息的话,程序是可以运行的。另外,我在eclipse上使用java application测试运行上述代码是可以成功的,能够实现将mpg格式的视频转为flv
格式。所以我觉得可能是struts的使用问题,不知道在struts2中启动新的线程是不是会有限制?初次使用struts2,不是特别懂,希望大虾们给指导指导,谢谢了!
//upload the file here ...
...
// 文件上传成功后,得到文件的后缀名suffix
if(!suffix.toLowerCase().equals(".flv")) {
// 另起线程进行格式转换
new Thread(new Runnable() {
public void run() {
FormatConvert fc = new FormatConvert("文件路径");
fc.runConvert();
}
}).start();
}
// 将上传的文件信息插入数据库中,并返回信息到前端
... 其中FormatConvert类是自定义的格式转换类,使用Jave包将不是flv格式的视频文件转换为flv格式的视频文件。该程序不能正常运行,单步调试的时候,会在DefaultActionInvocation.class中说source not found,然而如果
不在run方法里new FormatConvert类,只是简单的打印一些信息的话,程序是可以运行的。另外,我在eclipse上使用java application测试运行上述代码是可以成功的,能够实现将mpg格式的视频转为flv
格式。所以我觉得可能是struts的使用问题,不知道在struts2中启动新的线程是不是会有限制?初次使用struts2,不是特别懂,希望大虾们给指导指导,谢谢了!
解决方案 »
- java flex 通讯 类不能转化异常 ...请帮忙分析下什么问题.如何解决
- 在sturts里面怎么文件上传啊,我是新手,请那位大哥给个例子或者指教哦!
- 关于环境变量的菜问题?
- hib批量插入数据导致到主机的TCP/IP连接失败
- 急急急!请教各位大侠,用jfreeChart作曲线的时候,如果能使X座标的月份不重复出现呀?
- struts2中的数组类型转换问题
- 菜鸟求助myeclipse用tomcat搭web网站的问题,非常感谢
- 请教jsp问题,最后关头出错了!!帮忙
- 如何写这样程序?把.jsp文件另存为.htm格式?
- 新手上路,问题很多,巨简单的一个:如何在两个网页之间传递数据?
- 关于dao和javabean
- 文档上传后存取的一些疑惑,求指教
换句话说,你的Action本来就是个独立线程。如果是担心转换视频耗时影响到对客户端的响应速度,可以编写一个独立的文件转换池类。Action把接收到的文件丢给转换池就返回。转换池类接收所有Action丢来的文件并专责转换。