asp.net利用一般处理程序获取用户上传的图片,上传图片利用的layui

前台页面

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="CacheTest.WebForm2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
//需要引入layui需要的css和js文件
<link href="layui/css/layui.css" rel="stylesheet" />
<script src="layui/layui.js"></script>
<script>
layui.use('upload', function () {
var $ = layui.jquery, upload = layui.upload; //普通图片上传
var uploadInst = upload.render({
elem: '#test1',
url: '一般处理程序',
auto: false,
BindAction: "#按钮",
choose: function(ohj) {//点击上传前预览
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
$('#demo1').attr('src', result); //图片链接(base64)
});
},
before: function (obj) {
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
$('#demo1').attr('src', result); //图片链接(base64)
});
},
done: function (res) {//完成事件
//如果上传失败
if (res.code > ) {
return layer.msg('上传失败');
}
//上传成功
},
error: function () {
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html(
'<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
demoText.find('.demo-reload').on('click',
function () {
uploadInst.upload();
});
}
});
})
</script>
</head>
<body>
<form id="form1">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>常规使用:普通图片上传</legend>
</fieldset> <div class="layui-upload">
<button type="button" class="layui-btn" id="test1">上传图片</button>
<div class="layui-upload-list">
<img class="layui-upload-img" id="demo1" style="width:200px">
<p id="demoText"></p>
</div>
</div>
</form>
</body>
</html>

一般处理程序

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web; namespace WebApplication1
{
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 : IHttpHandler
{ string fileNameNo = "";
string DirectoryName = "";
string Extension = "";
string fileName = "";
string fullPath = "";
string uploadDown = "";
string savePath = "";
string netPath = "";
string parm = "";
StringBuilder msg = new StringBuilder();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string physicalPath = System.Web.HttpContext.Current.Server.MapPath("/Upload/");
//parm = context.Request.QueryString["id"].ToString();
HttpFileCollection hfc = context.Request.Files; if (hfc.Count > )
{
HttpPostedFile hpf = context.Request.Files[];
if (hpf.ContentLength > )
{
//获取文件名和扩展名
fileNameNo = Path.GetFileName(hpf.FileName);
//获取文件所在目录
DirectoryName = Path.GetDirectoryName(hpf.FileName);
//获取扩展名
Extension = Path.GetExtension(hpf.FileName);
if (AvailableFileType(Extension)) //文件格式符合
{
if (hpf.ContentLength <= * * ) //文件大小符合
{ //获取文件名(不包括扩展名)
fileName = Path.GetFileNameWithoutExtension(hpf.FileName);
string newFileName = Guid.NewGuid().ToString().Replace("-", "") + Extension;
uploadDown = physicalPath + newFileName;
netPath = "../upload/" + newFileName;
savePath = Path.Combine(physicalPath, newFileName);
hpf.SaveAs(savePath);
msg.Append(
"{\"isok\":\"true\",\"username\":\"\",\"createtime\":\"\",\"message\":\"上传成功\",\"sourcefilename\":\"" +
context.Request.RawUrl + "\",\"netfilename\":\"" + netPath + "\",\"fileid\":\"" +
newFileName + "\"}");
context.Response.Write(msg.ToString());
//获取文件的绝对路径
//string fullPath = Path.GetFullPath(FileUploadImg.PostedFile.FileName);
////获取文件所在地分区
//string PathRoot = Path.GetPathRoot(FileUploadImg.PostedFile.FileName);
}
else
{
msg.Append(
"{\"isok\":\"false\",\"username\":\"\",\"createtime\":\"\",\"message\":\"上传失败,上传文档不能大于4MB!\",\"sourcefilename\":\"\",\"netfilename\":\"\",\"fileid\":\"\"}");
context.Response.Write(msg.ToString());
}
}
else //文件格式不符合
{
msg.Append(
"{\"isok\":\"false\",\"username\":\"\",\"createtime\":\"\",\"message\":\"文件格式不支持,支持bmp,jpg,gif,png,rar,zip,doc,xls,docx,xlsx格式的上传!\",\"sourcefilename\":\"\",\"netfilename\":\"\",\"fileid\":\"\"}");
context.Response.Write(msg.ToString());
}
}
else
{
msg.Append(
"{\"isok\":\"false\",\"username\":\"\",\"createtime\":\"\",\"message\":\"请选择上传的文件\",\"sourcefilename\":\"\",\"netfilename\":\"\"}");
context.Response.Write(msg.ToString());
}
}
else
{
msg.Append(
"{\"isok\":\"false\",\"username\":\"\",\"createtime\":\"\",\"message\":\"请选择上传的文件\",\"sourcefilename\":\"\",\"netfilename\":\"\"}");
context.Response.Write(msg.ToString());
}
}
public bool AvailableFileType(string temp)
{
string[] TypeBag = { ".bmp", ".jpg", ".gif", ".png", ".rar", ".zip", ".doc", ".xls", ".docx", ".xlsx" };
if (Array.IndexOf(TypeBag, temp) == -) return false;
else return true;
} public bool IsReusable
{
get
{
return false;
}
}
}
}

一般处理程序获取Layui上传的图片的更多相关文章

  1. PHP之ThinkPHP框架(验证码、文件上传、图片处理)

     验证码 验证码是框架自带有的,比之前使用GD库简单方便许多,其实现原理基本相似,都是生成图片,保存验证码值到Session中,表单提交验证码,然后进行值的对比验证. 简单的显示: <form ...

  2. WebService上传下载图片

    WebService服务端 接受要上传的图片 public string UploadImg(byte[] fileBytes, int id) { try { string filePath = M ...

  3. vue+element-ui中的图片获取与上传

    vue+element-ui中的图片获取与上传 工作上接触了一下图片的处理,图片的格式是文件流, 记录如下. 请求图片 请求图片的时候,带上{ responseType: 'blob' }, 否则图片 ...

  4. layui上传文件组件(前后端代码实现)

    我个人博客系统上传特色图片功能就是用layui上传文件组件做的.另外采用某个生态框架,尽量都统一用该生态框架对应的解决方案,因为这样一来,有这么几个好处?1.统一而不杂糅,有利于制定相应的编码规范,方 ...

  5. thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印

    今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...

  6. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  7. KindEditor上传本地图片在ASP.NET MVC的配置

    http://www.cnblogs.com/upupto/archive/2010/08/24/1807202.html 本文解决KindEditor上传本地图片在ASP.NET MVC中的配置. ...

  8. .net mvc4 利用 kindeditor 上传本地图片

    http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ...

  9. MVC&WebForm对照学习:文件上传(以图片为例)

    原文  http://www.tuicool.com/articles/myM7fe 主题 HTMLMVC模式Asp.net 博客园::首页::  ::  ::  ::管理 5 Posts :: 0 ...

随机推荐

  1. SVN版本冲突问题

    --------------------siwuxie095 SVN 版本冲突问题 如:Jack 和 Mary 从仓库中将项目下载到本地,然后 Jack 修改了 项目中的一个文件,并上传到仓库中,之后 ...

  2. oracle 使用正则表达式获取字符串中包含的数字

    select REGEXP_REPLACE('字符串中包含的数字123,提取后就是123', '[^0-9]', '') from dual;

  3. 零基础学习hadoop到上手工作线路指导(初级篇)

    零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...

  4. vue-cli启动本地服务,局域网下通过ip访问不到的原因

    1.问题描述: 新开发了一个vue-cli项目,想通过手机查看效果,发现访问不到,ip地址和端口号都没错但是手机访问不到,在本机电脑浏览器输入ip端口号一样访问不到,只能通过localhost:808 ...

  5. final修饰符:

    知识点: 1.final关键字用于修饰类.变量和方法 2.有点类似C#里的 sealed 关键字,用于表示它修饰的方法.变量和类不可以再被改变 3.final修饰变量时,表示该变量一旦获取了初始值,就 ...

  6. Ubuntu12.04添加环境变量

    环境变量分为系统级和用户级. 系统级变量设置环境为/etc/environment和/etc/profile等,不要轻易修改,否则可能造成系统错误. 用户级变量设置路径为-/.bashrc和~/.pr ...

  7. c++ 对象复制引用时何时调用构造函数、析构函数

    class TEST{ private : public : TEST() {std::cout << "constructor" << std::endl ...

  8. HBase Filter程序样例及Shell(图)

    ==过滤器执行流程== reset() : reset the filter state before filtering a new row. filterAllRemaining(): true ...

  9. maven 编译的时候总是报一些奇怪的错误 比如 surefire-boot 2.10 .jar 可是私服里查看本来就没有这个高的版本。

    或者私服总是 报 read time out , 或者  io 错误,  或者 gzip 解压错误,或者总是尝试下载一些高版本的jar , 而这些jar 可能是不存在的 .. 尝试 重新下载 apac ...

  10. Windows Server 2012如何实现双网卡绑定

    在windows server 2012 之前我们在服务器上如果要实现双网卡绑定则需要向服务器厂家所要相应的软件,但是现在强大的windows server 2012的到来使我们省去了所有的麻烦,因为 ...