首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求大神解决啊如果您以为太简单,懒得回答,那就勤快一回吧!快疯了

2013-01-19 
求大神解决啊!如果您认为太简单,懒得回答,那就勤快一回吧!快疯了!本帖最后由 xuechunfeng 于 2013-01-09 1

求大神解决啊!如果您认为太简单,懒得回答,那就勤快一回吧!快疯了!
本帖最后由 xuechunfeng 于 2013-01-09 10:51:25 编辑 这是一个“下载”的方法,抛出的异常“文件下载出错: http:\100.0.50.0:8080\download\sample.mp4 (文件名、目录名或卷标语法不正确。)”。目的,是将服务器上的一个mp4文件下载到本地。可是下载下来的视频,却是无效的,大小为(0字节)。可是从正常的项目流程访问进去就会出问题。。求帮忙解决。。谢谢了。。。

为安全起见文中 IP地址为伪造地址,如有雷同,实属巧合。。

抛出错误的地方是在:bis = new BufferedInputStream(new FileInputStream("http://100.0.50.0:8080/download/sample.mp4"));

声明:源文件存放路径绝对没有问题。而且通过给定的那个URL可以正常访问和下载!

       

@Controller
@RequestMapping("/phone")
public class DownloadController {

@RequestMapping(value = "/download")
public void download(HttpServletRequest request, HttpServletResponse response) {

String filename = "";
filename = "sample.mp4";

response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + filename);

BufferedInputStream bis = null;
BufferedOutputStream bos = null;
OutputStream output = null;

try {
bis = new BufferedInputStream(new FileInputStream("http://100.0.50.0:8080/download/sample.mp4"));

output = response.getOutputStream();
//response.reset();
bos = new BufferedOutputStream(output);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}

} catch (IOException e) {
log.error("文件下载出错: " + e.getMessage());
} finally {
try {
if (bos != null)
bos.close();
if (bis != null)
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

private static final Logger log = LoggerFactory.getLogger(DownloadController.class);
} java? 文件名、目录名或卷标语法不正确 视频下载
[解决办法]
FileInputStream是本地文件。。
[解决办法]
new FileInputStream("http://100.0.50.0:8080/download/sample.mp4")
这句我认为系统会在本地找一个名叫http://100.0.50.0:8080/download/sample.mp4的文件,而不会自动上网然后寻找这个。


这是我的一个下载图片的类中的几个方法,楼主看一下吧。


//输入地址url,文件名,输入目录
public static void getfile(String url1, String filename,String dest_folder) throws Exception {

log.info("照片存放目录为:"+dest_folder + "/" + filename);
File outFile = new File(dest_folder + "/" + filename);
if (outFile.exists()) {
return;
}

OutputStream os = null;
InputStream is = null;
try {
URL url = new URL(url1);

os = new FileOutputStream(outFile);
is = url.openStream();
byte[] buff = new byte[1024];
while (true) {
int readed = is.read(buff);
if (readed == -1) {
break;
}
byte[] temp = new byte[readed];


System.arraycopy(buff, 0, temp, 0, readed);
os.write(temp);
}
} catch (Exception e) {
System.out.println("出现异常");
System.out.println(url1);
n++;
//e.printStackTrace();java.io.FileNotFoundException
if (os != null) {
os.close();
}
if (outFile.exists()) {
outFile.delete();
}
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
}

public static String jpg(String in) {
String[] x = in.split("/");
return x[x.length - 1];
}


这是我的一个下载图片的类中的几个方法,楼主看一下吧。

热点排行