用MVC上传图片以及载图功能Word文件下载.docx

上传人:b****3 文档编号:8034214 上传时间:2023-05-09 格式:DOCX 页数:24 大小:124.68KB
下载 相关 举报
用MVC上传图片以及载图功能Word文件下载.docx_第1页
第1页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第2页
第2页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第3页
第3页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第4页
第4页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第5页
第5页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第6页
第6页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第7页
第7页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第8页
第8页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第9页
第9页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第10页
第10页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第11页
第11页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第12页
第12页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第13页
第13页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第14页
第14页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第15页
第15页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第16页
第16页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第17页
第17页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第18页
第18页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第19页
第19页 / 共24页
用MVC上传图片以及载图功能Word文件下载.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

用MVC上传图片以及载图功能Word文件下载.docx

《用MVC上传图片以及载图功能Word文件下载.docx》由会员分享,可在线阅读,更多相关《用MVC上传图片以及载图功能Word文件下载.docx(24页珍藏版)》请在冰点文库上搜索。

用MVC上传图片以及载图功能Word文件下载.docx

16

imgsrc="

%=Url.Content(item.照片)%>

"

alt="

style="

width:

100px;

height:

/>

17

18

%}%>

19

/table>

20

p>

新增一筆資料"

Create"

)%>

/p>

注意一下第16行,圖片的路徑,以及我有固定圖片的寬高

再來開始寫新增的程式碼及View

%using(Html.BeginForm()){%>

fieldset>

legend>

Fields<

/legend>

divclass="

editor-label"

>

%=Html.LabelFor(model=>

model.姓名)%>

/div>

editor-field"

%=Html.TextBoxFor(model=>

%=Html.ValidationMessageFor(model=>

model.性別)%>

%=Html.RadioButton("

性別"

true,new{id="

男"

})%>

labelfor="

男<

/label>

false,new{id="

女"

女<

21

22

23

24

model.照片)%>

br/>

25

%=Html.UploadImage()%>

26

27

28

inputtype="

submit"

value="

/>

29

30

/fieldset>

31

新增的View很簡單,幾乎都是用工具產出來的,重要的只有25行,擴充了HtmlHelper的方法,方法內容如下

publicstaticclassUploadImageHelper

{

publicstaticstringUploadImage(thisHtmlHelperhelper)

stringid=Guid.NewGuid().ToString();

StringBuildersb=newStringBuilder();

//這段是在準備圖片上傳完的圖片資訊及上傳狀態

sb.AppendLine("

divclass='

uploadContainer'

spanid='

+id+"

_btn-upload'

class='

Button_Upload'

上傳<

/span>

);

上傳狀態'

inputtype='

hidden'

id='

picName'

name='

value='

'

//========================================

//下面這段是在寫出SWFUpload所需的javascript

scripttype='

text/javascript'

varswfu_"

+id.Replace("

-"

)+"

;

sb.Append("

$(function(){"

swfu_"

=newSWFUpload({"

upload_url:

'

/Home/UploadImage'

file_post_name:

Filedata'

post_params:

{"

id'

:

},"

file_size_limit:

10MB'

file_types:

*.jpg;

*.png;

*.jpeg;

*.gif;

*.bmp'

//======================================

//綁定事件

file_dialog_complete_handler:

fileDialogComplete,"

upload_progress_handler:

uploadProgress,"

upload_error_handler:

uploadError,"

upload_success_handler:

UploadImageSuccess,"

32

//==========================================

33

//上傳按鈕的資訊============================

34

button_image_url:

/Scripts/btn_upload_1.png'

35

button_placeholder_id:

36

button_width:

95,"

37

button_height:

24,"

38

button_text:

spanclass=\"

button\"

上傳圖片<

39

button_text_style:

.button{font-family:

Helvetica,Arial,sans-serif;

font-size:

12pt;

text-align:

center;

}'

40

button_text_top_padding:

1,"

41

button_text_left_padding:

5,"

42

button_window_mode:

transparent'

43

flash_url:

/Scripts/swfupload.swf'

"

44

//============================================

45

debug:

false});

})"

46

/script>

"

47

//下面這行是上傳後預覽的圖片tag

48

imgid='

tmp_img'

src='

style='

padding-top:

5px;

display:

none;

49

50

returnsb.ToString();

51

}

52

由於都是組字串,所以可能不太好懂,但基本上都可以在文件都可以找到

不外乎就是一些上傳檔案大小的設定,按鈕的設定,完成或失敗時所要執行的function

重要的是第31行,當上傳成功時執行UploadImageSuccess這個function,

20-23行Post的路徑,及參數FileData跟id

以及10-12行,與48行自行設定的資訊

用好之後,把include的的檔案用一用,執行之後,就會出現下面的頁面

按了之後,就可以選檔案了,不過後端也必須要接才行

我設定的Post的路徑是在/Home/UploadImage

程式如下

[HttpPost]

publicActionResultUploadImage(stringid,HttpPostedFileBaseFiledata)

//new一個自訂的物件ImageData,供等下傳Json出去用

ImageDataimgData=newImageData(){ID=id,status="

0"

};

//判斷否有檔案,及圖檔的附檔明有沒有符合

if(Filedata!

=null&

&

Regex.IsMatch(Path.GetExtension(Filedata.FileName),"

^[.](jpg|png|jpeg|gif|bmp)$"

RegexOptions.IgnoreCase))

//先將圖片存在tempFile這個暫存的資料夾

stringtmpPath=Server.MapPath("

~/tempFile"

//當資料夾不存在時,建立此資料夾

if(!

Directory.Exists(tmpPath))

Directory.CreateDirectory(tmpPath);

//將檔案存檔

tmpPath=Path.Combine(tmpPath,imgData.ID+Path.GetExtension(Filedata.FileName));

Filedata.SaveAs(tmpPath);

//將路徑資訊跟狀態指到物件中

imgData.imgSrc="

/tempFile/"

+imgData.ID+Path.GetExtension(Filedata.FileName);

imgData.status="

1"

//傳回Json格式

returnJson(imgData);

自訂的物件

1

classImageData

2

3

publicstringimgSrc{get;

set;

}

4

publicstringimgName{get;

5

publicstringID{get;

6

publicstringstatus{get;

7

還記得剛剛在設定上傳成功時要去執行UploadImageSuccess這個function嗎

SWFload範例有附一些function,但為了需要所以我修改了這個function

functionUploadImageSuccess(file,serverData){

varretVal=eval('

('

+serverData+'

)'

if(retVal.status=='

1'

){

$('

#上傳狀態'

).html('

上傳成功:

+file.name);

#picName'

).val(retVal.imgSrc);

#tmp_img'

).attr('

src'

retVal.imgSrc).show();

//下面是裁圖的jQuery========

).Jcrop({

setSelect:

[0,0,250,250],

onSelect:

updateCoords

});

//===========================

else{

上傳失敗!

function內容滿簡單的,先判斷狀態如果是1代表上傳成功

在先前的helper中已經訂好的id名稱一一對上

id="

上傳成功"

的內容放入上傳成功及檔名

picName"

是一個隱藏欄位,放暫存圖片的路徑

tmp_img"

將src的值改為暫存圖片的路徑

7-11行是裁圖的jQuery等等再說

完成之後,點上傳檔案選擇完檔案之後,就可以看到成果啦

突然覺得篇幅太長,分成上下兩篇好了。

我只設定了setSelect,代表初始的框框大小及位置

與onSelect,代表選取時去執行updateCoords這個function

下面貼完整的View出來

scripttype="

text/javascript"

//選取時執行的function

functionupdateCoords(c){

jQuery('

#X'

).text(c.x);

#Y'

).text(c.y);

#W'

).text(c.w);

#H'

).text(c.h);

#picX'

).val(c.x);

#picY'

).val(c.y);

#picW'

).val(c.w);

#picH'

).val(c.h);

h2>

Create<

/h2>

%using(Html.BeginForm()){%>

divclass="

labelfor="

br/>

%--顯示出目前框框的左上角座標及寬高--%>

X:

divid="

X"

Y:

Y"

寬:

W"

高:

H"

inputtype="

%--隱藏欄位,要傳左上角座標及寬高到後端--%>

hidden"

picX"

name="

picY"

picW"

picH"

53

54

55

div>

56

%=Html.ActionLink("

BacktoList"

Index"

57

加上上方的程式碼後,在圖片上傳完後,就可以看到下面的效果

可以自由的調整框框大小。

上方也會顯示出現在的位置及寬高

終於到最後一步,新增該筆資料啦,將資料打完,圖片上傳好後

按下Create,在後端寫好對應的Action如下

publicActionResultCreate(SWFandCropdata,stringpicName,intpicX,intpicY,intpicW,intpicH)

//利用路徑開啟這個圖檔

System.Drawing.Imageimage=Bitmap.FromFile(Server.MapPath("

~"

)+picName);

//下面就是裁圖的程式,短短幾行

Bitmapbmp=ne

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2