您的位置:首页 > 移动开发 > Android开发

android 开发上传图片遇到返回 FileNotFoundException

2014-11-21 15:48 351 查看
目的:带有参数上传图片

环境:客户端开发 android studio ,服务器端:visual studio 2012 (c# asp.net)

************************************************************************

上传图片的时候遇到返回FileNotFoundException,但是一直在客户端报错

HttpURLConnection中connection.getInputStream()报错误FileNotFoundException


java.io.FileNotFoundException: http://192.168.11.6/appHandler/UploadHandler.ashx (一直以为是找不到这个文件)

所以也一直在查找客户端的错误,换来换去,还是没有解决,都快疯掉了,放了一段时间,今天又重新来补充这一块的开发,慢慢调试,才发现如果在服务器端只接受参数,不处理图片与文件这一块,则会正常返回服务器消息,这才知道是服务器端出现问题了,下面把出问题的代码贴出来:

public string UploadVoiceFile(HttpContext context)
{
string FileName, FilePath;
HttpPostedFile ItemImageFile = context.Request.Files["Filedata"];
FileName = ItemImageFile.FileName.Substring(ItemImageFile.FileName.LastIndexOf("."));
//FileName = Guid.NewGuid().ToString().Substring(24) + DateTime.Now.ToShortDateString().Replace("/", "_") + file.FileName.Substring(file.FileName.LastIndexOf("."));
string FilePathStr = "/upload/voice/" + DateTime.Now.ToShortDateString().Replace("/", "") + "/";
FilePath = HttpContext.Current.Server.MapPath(@FilePathStr);
if (ItemImageFile != null)
{
//如果没有该目录则创建该上传目录
if (!Directory.Exists(FilePath))  //这一块就出现问题
{
Directory.CreateDirectory(FilePath);
}
if (ItemImageFile.ContentLength > 2097152)  // 图片大小不能超过2M
{
return "{\"result\": \"-1\",\"msg\":\"图片大小不能超过2M!\"}";
}
ItemImageFile.SaveAs(FilePath + FileName);
return "{\"result\": \"1\",\"msg\":\"" + FilePathStr + FileName + "\"}";
}
return "{\"result\": \"-1\",\"msg\":\"文件数据为空!\"}";
}


是创建不了目录,也不能正常保存文件,所以抛出FileNotFoundException,也就传回到客户端了,以为是找不到文件:http://192.168.11.6/appHandler/UploadHandler.ashx

网上也有朋友遇到过,说是重新建了一个工程就OK了,我这里通过服务器本地调试也是可以的,所以原因出现在 IIS文件权限这一块

找到要上传的文件目录,右键->安全 -》 添加 -> Everyone 用户,权限:完全控制 ,搞定!

汗颜啊,这一个小小的问题浪费了几天的开发时间,写在这里留作以后笔记,也供大家参考!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐