js

             navigator.camera.getPicture(function(imageURI){
var url=apiUrl+"/upload.aspx";
//alert(imageURI + "--" +url);
uploadFile(imageURI,url,function(path){ alert(path); });
}, function(message){}, { quality: 50, allowEdit: true,
destinationType: Camera.DestinationType.FILE_URI,sourceType: Camera.PictureSourceType.PHOTOLIBRARY});
//-- 去掉sourceType为拍照
// Upload files to server
var uploadFile=function(imageURI,uploadUrl,getPathCallback) {
try{ var options = new FileUploadOptions();
options.fileKey = "file";
if(imageURI.indexOf("content:")>=0){
options.fileName="random.jpg"
}else{
options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
}
options.mimeType = "image/jpeg";
var ft = new FileTransfer();
ft.upload(
imageURI,
encodeURI(uploadUrl),
function(result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
var path= unescape(eval(result.response).result.Path);
getPathCallback(path);
navigator.camera.cleanup(null,null);
},
function(error) {
console.log('Error uploading file ' + path + ': ' + error.code);
navigator.camera.cleanup(null,null);
},
options); }catch(e){}
}

上传后更新图片地址

/* 修改我的资料 */
module.controller('ModifyMemberInfoCtl', function($scope, $http) { $scope.submit=function(){ } $scope.setImg=function(){ navigator.camera.getPicture(function(imageURI){
var url=apiUrl+"/upload.aspx";
//alert(imageURI + "--" +url);
modal.show();
uploadFile(imageURI,url,function(path){
setTimeout( function(){modal.hide();},3000);
$scope.Avatar=imgUrl + path +"?width=280&height=280";
$scope.$apply();
});
}, function(message){}, { quality: 50, allowEdit: true,
destinationType: Camera.DestinationType.FILE_URI,sourceType: Camera.PictureSourceType.PHOTOLIBRARY}); }
});

C#

<%@ Page Language="C#"Inherits="com.jtys114.Sport.AdminWebUI.Core.PageBase" %>
<%@ Import Namespace="System.Linq" %>
<%@ Import Namespace="com.jtys114.Sport.AdminWebUI.Core" %>
<%@ Import Namespace="com.jtys114.Sport.Util" %>
<%@ Import Namespace="com.jtys114.Sport.EFModel" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="F.Studio.Web.Utility" %>
<%@ Import Namespace="System.IO" %>
<script runat="server"> static readonly string C_FileRoot = "/Files/";
private bool UseEscape = false;//是否对字符进行escape编码
private String CallBack = ""; // protected override void CheckPageAccessAuth()
{ return;
}
private void WriteJson(object v)
{
var o = new { result = v };
Response.Write(string.Format("{0}({1})", CallBack, JSONhelper.ToJson(o, UseEscape)));
}
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "text/json";
Response.Expires = -1;
try
{
UseEscape = TryParser<bool>(Request["es"], false);
CallBack = Request["callback"]; if (Request.Files.Count <= 0) throw new Exception("没有文件上传!"); var response= SaveFile(); WriteJson(response); }
catch (Exception ex)
{
WriteJson(new { Msg = ex.Message, Code = -1 });
}
Response.End(); } private UploadResponse SaveFile()
{ var file = Request.Files[0];
var ext = Path.GetExtension(file.FileName); //确保目录存在
string path = C_FileRoot + DateTime.Now.ToString("yyyy-MM-dd") + "/"; if (!Directory.Exists(System.Web.Hosting.HostingEnvironment.MapPath(path)))
{
Directory.CreateDirectory(System.Web.Hosting.HostingEnvironment.MapPath(path));
}
//合成文件名
var filename = path + Guid.NewGuid().ToString("N").Substring(0, 8) + ext; var resp = new UploadResponse();
resp.MIME = file.ContentType;
resp.Size = file.ContentLength / 1024; resp.Name = StringHelper.Escape(Path.GetFileNameWithoutExtension(file.FileName));
resp.Path = StringHelper.Escape(filename);
resp.Code = 200;
resp.Msg = "Success"; using (var ctx = DBCtx.GetCtx())
{
var ent = new Sys_Files();
ent.AddTime = DateTime.Now;
ent.CatalogId = Util.GetQ<int>(Request, "dirNo", -1);
ent.FileSize = resp.Size;
ent.IsDeleted = false;
ent.Name = resp.Name;
ent.Path = resp.Path; ctx.Sys_Files.AddObject(ent);
ctx.SaveChanges(); resp.FileId = ent.DocId;
} //保持文件
file.SaveAs(System.Web.Hosting.HostingEnvironment.MapPath(filename)); return resp;
}

cordova 选择图片并上传到服务器的更多相关文章

  1. HTML5裁剪图片并上传至服务器实现原理讲解

    HTML5裁剪图片并上传至服务器实现原理讲解   经常做项目需要本地上传图片裁剪并上传服务器,比如会议头像等功能,但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁 ...

  2. HTML5 Canvas前台压缩图片并上传到服务器

    1.前台代码: <input id="fileOne" type="file" /> <input id="btnOne" ...

  3. 微信js-sdk,选择图片,上传,下载到本地,php服务端

    //前端js代码<script> //客户端6.0.2 wx.config({ //debug:true, appId: "{pigcms:$signPackage.appId} ...

  4. HTML5 本地裁剪图片并上传至服务器(转)

    很多情况下用户上传的图片都需要经过裁剪,比如头像啊什么的.但以前实现这类需求都很复杂,往往需要先把图片上传到服务器,然后返回给用户,让用户确定裁剪坐标,发送给服务器,服务器裁剪完再返回给用户,来回需要 ...

  5. js实现图片粘贴上传到服务器并展示

    最近看了一些有关于js实现图片粘贴上传的demo,实现如下: (这里只能检测到截图粘贴和图片右键复制之后粘贴) demo1: document.addEventListener('paste', fu ...

  6. SpringMvc + Jsp+ 富文本 kindeditor 进行 图片ftp上传nginx服务器 实现

    一:html 原生态的附件上传 二:实现逻辑分析: 1.1.1 需求分析 Common.js 1.绑定事件 2.初始化参数 3.上传图片的url: /pic/upload 4.上图片参数名称: upl ...

  7. 转:【微信小程序】 微信小程序-拍照或选择图片并上传文件

    调用拍照API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html?t=20161222#wxchooseimageobj ...

  8. 小程序踩坑记录-上传图片及canvas裁剪图片后上传至服务器

    最近在写微信小程序的上传图片功能,趟过了一些坑记录一下. 想要满足的需求是,从手机端上传图片至服务器,为了避免图片过大影响传输效率,需要把图片裁剪至适当大小后再传输 主要思路是,通过wx.choose ...

  9. 微信小程序压缩图片并上传到服务器(拿去即用)

    这里注意一下,图片压缩后的宽度是画布宽度的一半 canvasToTempFilePath 创建画布的时候会有一定的时间延迟容易失败,这里加setTimeout来缓冲一下 这是单张图片压缩,多张的压缩暂 ...

随机推荐

  1. VBA 语句集400句

    定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明    Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  ...

  2. Simple2D-16(音乐播放器)ImGui 库介绍

    什么是 ImGui IMGUI (Immediate Mode Graphical User interface),下载地址. ImGui 是一种比较新颖的 GUI 实现模式,适用于显示区域实时刷新的 ...

  3. UI5-文档-4.2-Bootstrap

    在使用SAPUI5做一些事情之前,我们需要加载并初始化它.加载和初始化SAPUI5的过程称为引导.一旦引导完成,我们只需显示一个警告. Preview An alert "UI5 is re ...

  4. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

    1.什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类. 2.为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implemen ...

  5. Haskell语言学习笔记(68)HDBC

    安装 HDBC-Sqlite3 $ cabal install HDBC-Sqlite3 Installed HDBC-sqlite3-2.3.3.1 Prelude> :m Database. ...

  6. 迷你MVVM框架 avalonjs 学习教程11、循环操作

    avalon是通过ms-repeat实现对一组数据的批量输出.这一组数据可以是一个数组,也可以是一个哈希(或叫对象).我们先从数组说起吧. 第二节就说,凡是定义在VM中的数组,如果没有以$开头或者没放 ...

  7. Numpy数据存取

    Numpy数据存取 numpy提供了便捷的内部文件存取,将数据存为np专用的npy(二进制格式)或npz(压缩打包格式)格式 npy格式以二进制存储数据的,在二进制文件第一行以文本形式保存了数据的元信 ...

  8. Extending Conductor

    后端 导体提供了可插拔的后端.目前的实现使用Dynomite. 每个后端需要实现4个接口: //Store for workflow and task definitions com.netflix. ...

  9. linux安装本地blast

    1)wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.8.0alpha/ncbi-blast-2.8.0-alpha+-x64-li ...

  10. asp.net 关于Response.Redirect重定向前无法弹出alert对话框的问题

    要实现的功能:某项操作后,使用alert()提示框提示"操作成功"之类的提示,然后使用response.Redirect()来进行页面重定向. 出现的问题:运行代码,操作完成后,直 ...