asp.net下使用 jquery.form.js 上傳圖片(檔案)
首先需要引入外部js外掛 在專案中,使用的jquery版本為 1.7.2
<!--彈出div為窗體外掛 PS:該外掛可以不引入-->
<script src="../../Scripts/jquery.tools.min.js" type="text/javascript"></script>
<!--非同步提交外掛-->
<script src="../../Scripts/jquery.form.js" type="text/javascript"></script>
一、 js程式碼如下
function stuContinueCommunication(feedbackQuestionId) {
// 獲取需要提交的資訊
var textContent = $("#txt_content_" + feedbackQuestionId).val();
var imgContent = "";
// var urls = "../../Handler/HCommon/HFeedbackCommunication.ashx";
// var params = { type: "stuContinueAsk", FeedbackQuestionId: feedbackQuestionId, ImgContent: imgContent, TextContent: textContent, t: new Date().getMilliseconds() };
$("#frmQuery").ajaxSubmit(
{
url: "../../Handler/HCommon/HFeedbackCommunication.ashx?type=stuContinueAsk&FeedbackQuestionId=" + feedbackQuestionId + "&TextContent=" + textContent + "&t=" + new Date().getMilliseconds(),
type: "post",
dataType: "json",// 可以不指明返回資料格式。預設為返回字串
success: function (resultData) {
debugger
console.log(resultData);
if (resultData.ResultStatus == "1") {
alert("追問成功");
queryContent();
return;
}
if (resultData.ResultStatus == "0") {
alert("親,該問題已經反饋過了。");
return;
}
else {
alert("問題回覆失敗");
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
debugger
alert("問題回覆失敗,錯誤資訊:" + XmlHttpRequest);
}
}
);
}
二、HTML程式碼段如下:
注意:
1、新增的 form標籤需要 id method enctype 三個屬性(有待驗證method 屬性是否是必須的)
2、input file標籤 必須包含 name 屬性。否則後臺獲取不到
<form id="frmQuery" method="post" enctype="multipart/form-data">
<!--public/images/jn_15.jpg-->
<div class="huifu" id="div_huifu_1" style="display: none;">
<div class="pic_hf">
<img src="../../image/pagesimgs/jn_15.jpg" alt="" /></div>
<div class="hf_con">
<textarea name="" id="txt_content_1">請在此輸入內容</textarea>
<a href="javascript:void(0);">插入圖片</a><div id="img1">
</div>
<input type="file" name="img_1" id="img_1" onchange="previewImage(this,'img1')" />
<input type="button" class="btn-fk" onclick="stuContinueCommunication('1')" value="提交反饋" />
</div>
<div class="clear">
</div>
</div>
</form>
三、asp.net 後臺程式碼如下
注意:
1、一般處理程式的型別一定要是context.Response.ContentType = "text/html;charset=UTF-8"; 否則獲取不到提交的檔案
2、imgIndexName 是由主鍵+其他資訊確定獲取指定的檔案(此處為上傳圖片)
public class HFeedback : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// context.Response.ContentType = "text/plain"; //handler預設的型別
context.Response.ContentType = "text/html;charset=UTF-8"; // 需要使用的型別 否則無法獲取提交的檔案
string requestType = context.Request["type"];
#region 新增回復
if (requestType == "replyFeedback")
{
string feedbackQuestionId = context.Request["feedbackQuestionId"];
Int64 intFeedbackQuestionId = string.IsNullOrEmpty(feedbackQuestionId) ? -1 : Convert.ToInt64(feedbackQuestionId);
string FromUserId = user.UserData.LoginName;
int FromUserRoleType = user.UserData.Identity;
string ToUserId = context.Request["ToUserId"];
string strToUserRoleType = context.Request["ToUserRoleType"];
int ToUserRoleType = string.IsNullOrEmpty(strToUserRoleType) ? -1 : Convert.ToInt16(strToUserRoleType);
string TextContent = context.Request["TextContent"];
string ImgContent = "";
DateTime CreateTime = DateTime.Now;
// 0 已回覆過 1 一次都未回覆
string isFirstFeedback = context.Request["isFirstFeedback"];
DealInfoResult dealInfoResult = new DealInfoResult();
try
{
List<string> lstImgType = new List<string> { ".jpg", ".png", ".jpeg", ".bmp", ".gif", ".psd", ".svg" };
string imgName = "";
string imgIndexName = "img_" + feedbackQuestionId + "";// 按照名稱獲取提交的檔案,避免取多個檔案進行上傳
System.Web.HttpFileCollection files = context.Request.Files;
if (files != null && files.Count > 0 && files[imgIndexName] != null)
{
System.Web.HttpPostedFile postedfile = files[imgIndexName];
string FileExtension = "";
if (postedfile.FileName != "")
{
imgName = postedfile.FileName;
FileInfo fi = new FileInfo(imgName);
imgName = fi.Name;
FileExtension = fi.Extension;
if (lstImgType.Contains(FileExtension.ToLower().Trim()))
{
// 上傳圖片到指定目錄
string filepath = context.Server.MapPath("~/Resource/FeedbackImgs/");
//判斷檔案是否小於10Mb
if (postedfile.ContentLength > 10485759)
{
context.Response.Write("上傳圖片不能大於10MB!");
return;
}
// 判斷檔案是否已經匯入過
if (!Directory.Exists(filepath))
{
Directory.CreateDirectory(filepath);
}
if (File.Exists(filepath + imgName))
{
ImgContent = imgName;
}
else
{
//上傳檔案並指定上傳目錄的路徑
postedfile.SaveAs(filepath + imgName);
ImgContent = imgName;
}
}
}
else
{
context.Response.Write("檔案無效!");
return;
}
}
dealInfoResult.ResultStatus = feedbackBLL.AddFeedbackCommunicationAdmin(modelFeedbackCommunication) == true ? 1 : 0;
}
catch (Exception ex)
{
dealInfoResult.ResultStatus = -1;
dealInfoResult.ExceptionInfo = ex.Message;
}
context.Response.Write(JsonConvert.SerializeObject(dealInfoResult));// 外掛將物件轉換為json格式
return;
}
#endregion
}
}
相關文章
- 圖片檔案上傳
- PHP實現圖片(檔案)上傳PHP
- php圖片上傳之檔案安全PHP
- 上傳圖片和檔案出錯!!!
- ASP.NET WebApi 圖片上傳ASP.NETWebAPI
- Ueditor 上傳圖片自動新增水印(只能上傳圖片,上傳檔案報錯)
- asp.net上傳圖片生成縮圖ASP.NET
- Ueditor上傳圖片自動新增水印(通用圖片檔案)
- 使用SecureCRT上傳下載檔案Securecrt
- ASP.NET中檔案上傳下載方法集合ASP.NET
- ASP.NET Ueditor上傳圖片新增水印ASP.NET
- jqm檔案上傳,上傳圖片,jqm的表單操作,jqm的ajax的使用,jqm檔案操作大全,檔案操作demo
- 基於業務場景下的圖片/檔案上傳方案總結
- jsp+springmvc實現檔案上傳、圖片上傳和及時預覽圖片JSSpringMVC
- ASP.NET Core 檔案上傳ASP.NET
- 線上直播原始碼,js 檔案上傳 圖片上傳 傳輸速度計算原始碼JS
- FileReader()讀取檔案、圖片上傳預覽
- ASP.NET MVC使用input標籤上傳檔案ASP.NETMVC
- asp.net 檔案上傳和下載管理原始碼ASP.NET原始碼
- Laravel 使用 FastDFS 上傳圖片LaravelAST
- thinkphp5 後臺上傳圖片提示 image null 非法上傳檔案PHPNull
- 使用 canvas 繪製圖片,然後下載、上傳Canvas
- 上傳封面圖片前臺不顯示 Picture檔案裡可以看到上傳的圖片
- mac下使用指令碼為圖片加水印、上傳圖床Mac指令碼圖床
- 用ASP.NET上傳大檔案ASP.NET
- [Laravel Admin] 檔案 / 圖片上傳功能之擴充套件 -- 上傳新圖且保留原圖Laravel套件
- [筆記]laravel的上傳檔案或者圖片的方法筆記Laravel
- 檔案(圖片)上傳調研: HTML 5 vs. FlashHTML
- C#上傳檔案圖片怎麼判斷格式C#
- 檔案上傳下載
- 上傳圖片
- xshell 使用 sftp上傳下載檔案FTP
- Java Socket圖片檔案傳輸Java
- asp.net上傳圖片並同時生成縮圖 (轉)ASP.NET
- asp.net 使用FileUpload控制元件上傳並顯示圖片ASP.NET控制元件
- 微信小程式-拍照或選擇圖片並上傳檔案微信小程式
- springmvc + ajaxfileupload 實現非同步上傳檔案(圖片)SpringMVC非同步
- ASP.NET(C#) MOSS站點下 上傳大檔案ASP.NETC#