基于ASP.NET+EasyUI框架實(shí)現(xiàn)圖片上傳提交表單功能(js提交圖片)
我的風(fēng)格,先給大家展示下效果圖,具體效果圖如下所示,如果大家感覺還不錯(cuò)很滿意請參考實(shí)現(xiàn)代碼。

HTML的代碼:
<form id="ff" runat="server" method="post"> <div id="content" style="margin-left:50px;"> <table style="width:300px;" id="uniform"> <tr> <td>書畫名稱:<input id="paintingName" class="easyui-validatebox" validType:'paintingName' type="text" name="paintingName" data-options="required:true"/></td> </tr> <tr> <td>書畫類別:<input id="radPaint" value="國畫" class="easyui-validatebox" name="type" type="radio" checked="checked" data-options="required:true" />國畫 <input id="rad" name="type" class="easyui-validatebox" type="radio" data-options="required:true" />書法</td> </tr> <tr> <td>書畫作者:<asp:DropDownList ID="ddlist" runat="server" Width="155px"></asp:DropDownList> </td> </tr> <tr> <td>書畫價(jià)格:<input id="price" class="easyui-numberbox" type="text" name="price" data-options="required:true"/>元</td> </tr> <tr> <td>高 度:<input id="height" class="easyui-numberbox" type="text" name="height" data-options="required:true"/>cm</td> </tr> <tr> <td> 寬 度:<input id="width" class="easyui-numberbox" type="text" name="width" data-options="required:true"/>cm </td> </tr> <tr> <td> 選擇圖片:<asp:FileUpload ID="idFile" Width="150px" runat="server" onchange="javascript:setImagePreview(this,localImag,preview);"> </td> </tr> <tr> <td> 預(yù) 覽: <div id="localImag" style="width: 300px; height: 200px;"> <img id="preview" alt="預(yù)覽圖片" onclick="over(preview,divImage,imgbig);" src="../../Paint/img/default.jpg" width="300" height="200"/> </div> </td> </tr> </table> <input type="hidden" id="test" name="test" /> <div style="width:300px; text-align:center;"> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">確定</a> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="clearForm()">取消</a> </div> <%--顯示大圖標(biāo)的區(qū)域--%> <div id="divImage" style="display: none;left:365px;top:40px;position: absolute"> <img id="imgbig" onclick="out();" src="" alt="大圖" /> </div> </div> </form>
JS代碼:
//顯示圖片
function over(imgid, obj, imgbig) {
//大圖顯示的最大尺寸 4比3的大小 400 300
maxwidth = 400;
maxheight = 300;
//顯示
obj.style.display = "";
imgbig.src = imgid.src;
//1、寬和高都超過了,看誰超過的多,誰超的多就將誰設(shè)置為最大值,其余策略按照2、3
//2、如果寬超過了并且高沒有超,設(shè)置寬為最大值
//3、如果寬沒超過并且高超過了,設(shè)置高為最大值
if (img.width > maxwidth && img.height > maxheight) {
pare = (img.width - maxwidth) - (img.height - maxheight);
if (pare >= 0)
img.width = maxwidth;
else
img.height = maxheight;
}
else if (img.width > maxwidth && img.height <= maxheight) {
img.width = maxwidth;
}
else if (img.width <= maxwidth && img.height > maxheight) {
img.height = maxheight;
}
}
//隱藏圖片
function out() {
document.getElementById('divImage').style.display = "none";
}
//保存信息
function submitForm() {
$.messager.confirm('提示', '你確定要添加此記錄嗎?', function (r) {
if (r) {
//先上傳圖片后,再提交
upLoadFile();
var test = document.getElementById("test").value = "add";
var paintingName = document.getElementById("paintingName").value;
var artistID = document.getElementById("ddlist").value;
var type = $(":checkbox[name='type']").attr("checked") == true ? "書法" : "國畫";
var price = document.getElementById("price").value;
var height = document.getElementById("height").value;
var width = document.getElementById("width").value;
var idFile = document.getElementById("idFile").value;
//先判斷是否上傳圖片之后在提交
$('#ff').form('submit', {
url: "Painting.ashx?paintingName=" + paintingName + "&artistID=" + artistID +
"&type=" + type + "&price=" + price + "&height=" + height + "&width=" + width +
"&idFile=" + idFile + "&addID=" + addID + "&test=" + test,
dataType: "json",
onSubmit: function () {
return $(this).form('validate');
},
success: function (result) {
if (result == "T") {
//清空文本框
document.getElementById("paintingName").value = "";
document.getElementById("price").value = "";
document.getElementById("height").value = "";
document.getElementById("width").value = "";
document.getElementById("idFile").value = "";
document.getElementById("preview").value = "";
$.messager.alert('提示', '恭喜您,信息添加成功!', 'info');
}
else {
$.messager.alert('提示', '保存失敗,請您核對!', 'info');
}
}
});
}
});
}
//上傳圖片
function upLoadFile() {
var idFile = document.getElementById("idFile").value;
//判斷是否選擇圖片
if (idFile == null || idFile == "") {
$.messager.alert('提示','請?zhí)砑訄D片!');
document.getElementById("idFile").focus();
document.getElementById("idFile").select();
return;
}
var options = {
type: "POST",
url: 'Files.ashx',
//success: showResponse
};
// 將options傳給ajaxForm
$('#ff').ajaxSubmit(options);
}
//function showResponse() {
// alert("上傳成功!");
//}
function clearForm(){
//清空文本框
document.getElementById("paintingName").value = "";
document.getElementById("price").value = "";
document.getElementById("height").value = "";
document.getElementById("width").value = "";
document.getElementById("idFile").value = "";
}
后臺(tái)一般處理程序的代碼:
上傳圖片的一般處理程序:
<span style="font-size:14px;"> /// <summary>
/// Files 的摘要說明
/// </summary>
public class Files : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//圖片名
HttpFileCollection files = context.Request.Files;
if (files.Count > 0)
{
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i];
if (file.ContentLength > 0)
{
//全路徑
string FullFullName = file.FileName;
//獲取圖片的名稱
String fileName = FullFullName.Substring(FullFullName.LastIndexOf("\\") + 1);
//保存路徑D:\GoodCommunitySystem2.0 - 副本\GoodCommunitySystem\Paint\img\
string path = "~/Paint/img";
file.SaveAs(System.Web.HttpContext.Current.Server.MapPath(path) + "\\" + fileName);
}
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}</span>
提交表單的一般處理程序:
/// <summary>
/// Painting 的摘要說明
/// </summary>
public class Painting : IHttpHandler
{
paintingBLL paintingbll = new paintingBLL();
Entity.paintingEntity paintingEntity = new Entity.paintingEntity();
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string command = context.Request["test"].ToString();//前臺(tái)傳的標(biāo)示值
if (command == "add")
{
Add(context);
}
}
/// <summary>
/// 添加記錄
/// </summary>
/// <param name="context"></param>
public void Add(HttpContext context)
{
paintingEntity.PaintingName = context.Request.QueryString["paintingName"];
paintingEntity.PaintingStyle = context.Request.QueryString["type"];
paintingEntity.PaintingURL = context.Request.QueryString["idFile"];
paintingEntity.Price = Convert.ToInt32(context.Request["price"]);
paintingEntity.AddID = Convert.ToInt32(context.Request["addID"]);
paintingEntity.ArtistID = Convert.ToInt32(context.Request["artistID"]);
paintingEntity.Height = Convert.ToInt32(context.Request.QueryString["height"]);
paintingEntity.Width = Convert.ToInt32(context.Request.QueryString["width"]);
try
{
if (paintingbll.Add(paintingEntity))
{
context.Response.Write("T");
}
else
{
context.Response.Write("F");
}
}
catch (Exception ex)
{
throw ex;
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
需要引入的js:
<%--基礎(chǔ)樣式--%> <link href="../../themes/default/easyui.css" rel="stylesheet" /> <%--圖標(biāo)樣式--%> <link href="../../themes/icon.css" rel="stylesheet" /> <%--easyui-js--js的文件有先有后min.js必須在前,easyui.min.js必須在后--%> <script src="../jquery.min.js"></script> <%--easyui 的js--%> <script charset="utf-8" src="../jquery.easyui.min.js"></script> <%--中文js--%> <script src="../locale/easyui-lang-zh_CN.js"></script> <%--上傳圖片時(shí)js--%> <script src="js/jquery.form.js"></script>
上傳圖片時(shí),需要jquery.form.js的js文件,下載地址:http://download.csdn.net/detail/jiuqiyuliang/6919517
上傳圖片,并提交表單就是這么簡單,一些js代碼+一般處理程序,相信你一看就會(huì)。后面的博客我會(huì)更新一些關(guān)于easyui-datagrid的相關(guān)博客,敬請期待。
最近有網(wǎng)友,總覺得看的還不是太明白,能不能將paintingBLL和paintingEntity代碼貼一下-----新人求罩,我個(gè)人覺得實(shí)體層就沒有必要了,下面我就將paintingBLL的源碼粘一下,僅供大家參考。
using System;
using System.Data;
using System.Collections.Generic;
using Common;
using Entity;
using DALFactory;
using IDAL;
namespace BLL
{
/// <summary>
/// paintingBLL
/// </summary>
public partial class paintingBLL
{
private readonly IpaintingDAL dal=DataAccess.CreatepaintingDAL();
public paintingBLL()
{}
#region BasicMethod
/// <summary>
/// 得到最大ID
/// </summary>
public int GetMaxId()
{
return dal.GetMaxId();
}
/// <summary>
/// 是否存在該記錄
/// </summary>
public bool Exists(int PaintingID)
{
return dal.Exists(PaintingID);
}
/// <summary>
/// 增加一條數(shù)據(jù)
/// </summary>
public bool Add(Entity.paintingEntity Entity)
{
return dal.Add(Entity);
}
/// <summary>
/// 更新一條數(shù)據(jù)
/// </summary>
public bool Update(Entity.paintingEntity Entity)
{
return dal.Update(Entity);
}
/// <summary>
/// 刪除一條數(shù)據(jù)
/// </summary>
public bool Delete(int PaintingID)
{
return dal.Delete(PaintingID);
}
/// <summary>
/// 刪除一條數(shù)據(jù)
/// </summary>
public bool DeleteList(string PaintingIDlist )
{
return dal.DeleteList(PaintingIDlist );
}
/// <summary>
/// 得到一個(gè)對象實(shí)體
/// </summary>
public Entity.paintingEntity GetEntity(int PaintingID)
{
return dal.GetEntity(PaintingID);
}
/// <summary>
/// 得到一個(gè)對象實(shí)體,從緩存中
/// </summary>
public Entity.paintingEntity GetEntityByCache(int PaintingID)
{
string CacheKey = "paintingEntityEntity-" + PaintingID;
object objEntity = Common.DataCache.GetCache(CacheKey);
if (objEntity == null)
{
try
{
objEntity = dal.GetEntity(PaintingID);
if (objEntity != null)
{
int EntityCache = Common.ConfigHelper.GetConfigInt("EntityCache");
Common.DataCache.SetCache(CacheKey, objEntity, DateTime.Now.AddMinutes(EntityCache), TimeSpan.Zero);
}
}
catch{}
}
return (Entity.paintingEntity)objEntity;
}
/// <summary>
/// 獲得數(shù)據(jù)列表
/// </summary>
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
/// <summary>
/// 獲得數(shù)據(jù)列表
/// </summary>
public DataSet GetPaintingList(string strWhere)
{
return dal.GetPaintingList(strWhere);
}
/// <summary>
/// 獲得前幾行數(shù)據(jù)
/// </summary>
public DataSet GetList(int Top,string strWhere,string filedOrder)
{
return dal.GetList(Top,strWhere,filedOrder);
}
/// <summary>
/// 獲得數(shù)據(jù)列表
/// </summary>
public List<Entity.paintingEntity> GetEntityList(string strWhere)
{
DataSet ds = dal.GetList(strWhere);
return DataTableToList(ds.Tables[0]);
}
/// <summary>
/// 獲得數(shù)據(jù)列表
/// </summary>
public List<Entity.paintingEntity> DataTableToList(DataTable dt)
{
List<Entity.paintingEntity> EntityList = new List<Entity.paintingEntity>();
int rowsCount = dt.Rows.Count;
if (rowsCount > 0)
{
Entity.paintingEntity Entity;
for (int n = 0; n < rowsCount; n++)
{
Entity = dal.DataRowToEntity(dt.Rows[n]);
if (Entity != null)
{
EntityList.Add(Entity);
}
}
}
return EntityList;
}
/// <summary>
/// 獲得數(shù)據(jù)列表
/// </summary>
public DataSet GetAllList()
{
return GetList("");
}
/// <summary>
/// 分頁獲取數(shù)據(jù)列表
/// </summary>
public int GetRecordCount(string strWhere)
{
return dal.GetRecordCount(strWhere);
}
/// <summary>
/// 分頁獲取數(shù)據(jù)列表
/// </summary>
public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
{
return dal.GetListByPage( strWhere, orderby, startIndex, endIndex);
}
/// <summary>
/// 分頁獲取數(shù)據(jù)列表
/// </summary>
//public DataSet GetList(int PageSize,int PageIndex,string strWhere)
//{
//return dal.GetList(PageSize,PageIndex,strWhere);
//}
#endregion BasicMethod
#region ExtensionMethod
#endregion ExtensionMethod
}
}
以上所述是小編給大家介紹的基于ASP.NET+EasyUI框架實(shí)現(xiàn)圖片上傳提交表單功能(js提交圖片),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- ASP.NET中使用后端代碼注冊腳本 生成JQUERY-EASYUI的界面錯(cuò)位的解決方法
- ASP.NET MVC使用EasyUI的datagrid多選提交保存教程
- ASP.NET MVC中EasyUI的datagrid跨域調(diào)用實(shí)現(xiàn)代碼
- EasyUI Tree+Asp.net實(shí)現(xiàn)權(quán)限樹或目錄樹導(dǎo)航的簡單實(shí)例
- ASP.NET MVC+EF框架+EasyUI實(shí)現(xiàn)權(quán)限管系列
- Asp.net配合easyui實(shí)現(xiàn)返回json數(shù)據(jù)實(shí)例
- 利用ASP.NET MVC+EasyUI+SqlServer搭建企業(yè)開發(fā)框架
- 基于ASP.NET+easyUI框架實(shí)現(xiàn)圖片上傳功能(表單)
相關(guān)文章
ASP.NET Core中修改配置文件后自動(dòng)加載新配置的方法詳解
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中修改配置文件后自動(dòng)加載新配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
asp.net下利用JS實(shí)現(xiàn)對后臺(tái)CS代碼的調(diào)用方法
asp.net下利用JS實(shí)現(xiàn)對后臺(tái)CS代碼的調(diào)用方法...2007-04-04
使用最小?WEB?API?實(shí)現(xiàn)文件上傳會(huì)遇到的坑
這篇文章主要介紹分享使用最小?WEB?API?實(shí)現(xiàn)文件上傳時(shí)會(huì)遇到的坑,在使用?.NET?6?的最小?WEB?API?來實(shí)現(xiàn)相同功能時(shí),總是會(huì)意外地遇到了不少坑,下面我們就來看看這些坑都是怎么處理的吧,需要的朋友可以參考下2022-02-02
ajax.net對數(shù)據(jù)庫的插入實(shí)例
ajax.net對數(shù)據(jù)庫的插入實(shí)例,需要的朋友可以參考一下2013-04-04
asp.net core 3.0中使用swagger的方法與問題
這篇文章主要給大家介紹了關(guān)于asp.net core 3.0中使用swagger的方法與遇到的一些問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用asp.net core 3.0具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
ASP.net如何連接SQL SERVER 2012數(shù)據(jù)庫
這篇文章主要介紹了ASP.net連接SQL SERVER 2012數(shù)據(jù)庫的方法,非常不錯(cuò),在項(xiàng)目開發(fā)中經(jīng)常可以用到,需要的朋友可以參考下2016-08-08

