首页 > 代码库 > android 开发上传图片遇到返回 FileNotFoundException
android 开发上传图片遇到返回 FileNotFoundException
目的:带有参数上传图片
环境:客户端开发 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 用户,权限:完全控制 ,搞定!
汗颜啊,这一个小小的问题浪费了几天的开发时间,写在这里留作以后笔记,也供大家参考!
android 开发上传图片遇到返回 FileNotFoundException