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

时间:2021-08-26 04:35:22

目的:带有参数上传图片

环境:客户端开发 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 > ) // 图片大小不能超过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的更多相关文章

  1. Xamarin +vs2015 Android 开发GPS loaction 返回 null 小结

    最近公司要开发android 所以研究了一下Xamarin  to android 中个GPS 废话不多说,说重点. 想获取手机上的gps信息必不可少的就是要使用 LocationManager Lo ...

  2. Android开发:getViewById返回null的原因定位

    近期在研究开发一些基于Android的App,遇到了一些问题.当中一个比較关键的是在Activity中的onCreate()方法中获取Button对象.代码大概例如以下: private Button ...

  3. 【Android开发笔记】返回上层Activity的正确打开方式

    技术支持 http://*.com/questions/12276027/how-can-i-return-to-a-parent-activity-correctly 首先, ...

  4. Android应用开发按下返回键退向后台执行

    转载请注明来源:http://blog.csdn.net/kjunchen/article/details/50429694 Android应用开发按下返回键退向后台执行 我们日常使用的非常多Andr ...

  5. Java乔晓松-android中上传图片到服务器Tomcat(Struts2)

    在做android开发的时候,有时你会用到图片的上传功能,在我的android项目中,我是选中图片,点击上传多张图片 android客户端上传图片部分的代码如下: package com.exampl ...

  6. Android开发学习清单

    目录: 第1章 Android应用与开发环境1.1 Android的发展和历史1.1.1 Android的发展和简介1.1.2 Android平台架构及特性1.2 搭建Android开发环境1.2.1 ...

  7. android开发之使用拼音搜索汉字

    国庆回了趟家,昨天真不想走,离家近的感觉太好.唉,不扯这些,说说今天的正事吧. 上篇博客中介绍了自定义AutoCompleteTextView ,但是用到了一个很蹩脚的技术,就是我们事先把每个汉字的拼 ...

  8. Android端上传图片到后台,存储到数据库中 详细代码

    首先点击头像弹出popwindow,点击相册,相机,调用手机自带的裁剪功能,然后异步任务类访问服务器,上传头像,保存到数据库中, 下面写出popwindow的代码 //设置popwindow publ ...

  9. android开发中的5种存储数据方式

    数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...

随机推荐

  1. Nginx Http框架的理解

    Nginx Http框架的理解 HTTP框架是Nginx基础框架的一部分,Nginx的其它底层框架如master-worker进程模型.event模块.mail 模块等. HTTP框架代码主要有2个模 ...

  2. 我读<代码整洁之道>--读书笔记整理

    第一章 整洁代码 "我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的,整洁的代码总是看起来像是某位特别在意他的人写的.几乎没有改进的余地,代码作者设么都想到了,如果你企图改进它 ...

  3. 简述openstack

    大家好,我顾某人又回来了,开学第一更.... 以下内容均为个人理解和整理,有不对的地方还望dalao指正..... 本文所用图片均已标明来源. openstack是什么? OpenStack是一个开源 ...

  4. Mybatis if test 中int integer判断非空的坑

    Mybatis 中,alarmType 是int类型.如果alarmType 为0的话,条件判断返回结果为false,其它值的话,返回true. 1 <if test="alarmTy ...

  5. 最小树形图——朱刘算法&lpar;Edmonds&rpar;

    定义:一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图. 朱刘算法实现过程: [在选出入边集后(看步骤1),若有向图中不存在有向环,说明该图就是最小树形图] 1,选入 ...

  6. iOS 开发之 KVC - setValuesForKeysWithDictionary 解析

    从字典映射到一个对象,这是KVC中的一个方法所提供的,这个方法就是 setValuesForKeysWithDictionary:,非常好用,不需要你来一一的给对象赋值而直接从字典初始化即可,但用的不 ...

  7. 非root用户如何使用docker命令

    docker命令默认只能root使用的,但我们可以赋权给其他用户,使用时先照常新建用户: [root@10 ~]# useradd docker [root@10 ~]# passwd docker ...

  8. 将DataRow赋值给model中同名属性

    /// <summary> /// 将DataRow赋值给model中同名属性 /// </summary> /// <typeparam name="T&qu ...

  9. Bresenham直线算法与画圆算法

    在我们内部开发使用的一个工具中,我们需要几乎从 0 开始实现一个高效的二维图像渲染引擎.比较幸运的是,我们只需要画直线.圆以及矩形,其中比较复杂的是画直线和圆.画直线和圆已经有非常多的成熟的算法了,我 ...

  10. c&num; dynamic的属性是个变量

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...