2025-03-27 15:05:14 +08:00

172 lines
6.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using System.Text;
using SuperMap.RealEstate.HousingSecurity.APIPlugs;
using SuperMap.RealEstate.HousingSecurity.APIPlugs.flashuploader;
using System.Web.Script.Serialization;
namespace SuperMap.RealEstate.HousingSecurity.API.upload
{
/// <summary>
/// upimg 的摘要说明
/// 【提供给文章编辑的ueditor编辑器上传图片】
/// </summary>
public class upimg : IHttpHandler
{
private static int _USER_ID = 1;//MOCK
private static string _USER_NAME = "admin";
private const string SUCCESS = "SUCCESS";
private const string ERROR = "ERROR";
private HttpContext context;
public void ProcessRequest(HttpContext context)
{
this.context = context;
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
FlashUpJsonInfo _json = UpHousePhotos(0);
//直接输出json
//context.Response.ContentType = "application/json";
//context.Response.Write("{");
//context.Response.Write("'state':'" + _json.state + "'");
//context.Response.Write(",'msg':'" + _json.msg + "'");
//context.Response.Write(",'title':'" + _json.title + "'");
//context.Response.Write(",'url':'" + _json.url + "'");
//context.Response.Write(",'original':'" + _json.original + "'");
//context.Response.Write(",'fid':" + _json.fid);
//context.Response.Write("}");
context.Response.ContentType = "application/json";
Hashtable ht = new Hashtable();
ht.Add("state", _json.state);
ht.Add("msg", _json.msg);
ht.Add("title", _json.title);
ht.Add("url", _json.url);
ht.Add("original", _json.original);
ht.Add("fid", _json.fid);
StringBuilder buider = new StringBuilder();
JavaScriptSerializer json = new JavaScriptSerializer(new SimpleTypeResolver());
json.MaxJsonLength = Int32.MaxValue;
json.Serialize(ht, buider);
context.Response.Write(buider.ToString());
}
#region [] -> UpHousePhotos <-
public FlashUpJsonInfo UpHousePhotos(int houseid)
{
FlashUpJsonInfo _json = new FlashUpJsonInfo();
MyUpFileInfo myupfileinfo = null;
if (doupload(_json, out myupfileinfo))
{
//同时添加到房源图片目录
//try
//{
// //using (Ctrl_photos _ctrl = new Ctrl_photos())
// //{
// // _ctrl.FieldValues.Add("fk_type", Ctrl_photos.FK_TYPE_HOUSE);
// // _ctrl.FieldValues.Add("fk_id", houseid);//关联houseid
// // _ctrl.FieldValues.Add("fid", myupfileinfo.Entity.fid);
// // _ctrl.FieldValues.Add("imgurl", myupfileinfo.GetUri());
// // _ctrl.FieldValues.Add("imgtitle", myupfileinfo.Entity.memo);
// // _ctrl.FieldValues.Add("add_userid", LoginHelper.Sess_UserId);
// // _ctrl.FieldValues.Add("add_usernick", LoginHelper.Sess_UserNick);
// // _ctrl.FieldValues.Add("add_ip", LoginHelper.Sess_UserId);
// // _ctrl.FieldValues.Add("addtime", DateTime.Now);
// // _ctrl.FieldValues.Add("edittime", DateTime.Now);
// // _ctrl.Insert();
// //}
//}
//catch (Exception ex)
//{
// _json.state = ERROR;
// _json.msg = "upload file success,but save photos is error:" + ex.Message;
//}
}
return _json;
}
#endregion
private bool doupload(FlashUpJsonInfo _json, out MyUpFileInfo _upfileinfo)
{
bool _isok = false;
_upfileinfo = null;
HttpRequestBase request = new HttpRequestWrapper(this.context.Request);
//Hashtable _ht = new Hashtable();
if (request.Files != null && request.Files.Count > 0)
{
//处理出需要上传的文件对象(单文件处理)
_upfileinfo = new MyUpFileInfo(request.Files[0], _USER_ID, true);// 设定为新闻图片目录isnews=true
//[处理返回的参数]
_upfileinfo.Entity.memo = GetFileFieldVal(context, "pictitle");//ueditor专用字段,用于标识title,并且记录到数据库
string _msg = string.Empty;
if (UpFlashHelper.TrySaveUpFile(_upfileinfo.HttpPostedFileBase, _USER_ID, _USER_NAME, ref _upfileinfo, out _msg))
{
_isok = true;//标记成功
_json.state = SUCCESS;
_json.msg = _msg;
_json.url = _upfileinfo.GetUri();
//_json.sUrl = _upfileinfo.GetUri();
_json.title = _upfileinfo.Entity.memo;
_json.original = _upfileinfo.Entity.filename;
_json.fid = _upfileinfo.Entity.fid;
//if (currentType != null)
// infoList.Add("currentType", currentType);
//if (originalName != null)
// infoList.Add("originalName", originalName);
}
else
{
_json.state = ERROR;
_json.msg = _msg;
//Zoyoa.Core.Utility.SecurityHelper.HtmlEncode(_msg)
//显示信息需要编码防止JSON解析错误无法显示信息
}
}
else
{
_json.state = ERROR;
_json.msg = "Request.Files is null";
}
return _isok;
}
private static string GetFileFieldVal(HttpContext cxt, string field)
{
string info = null;
if (cxt.Request.Form[field] != null && !String.IsNullOrEmpty(cxt.Request.Form[field]))
{
info = cxt.Request.Form[field].Trim();
}
return info;
}
public bool IsReusable
{
get
{
return false;
}
}
}
}