在WebPart中上传图片到SharePoint图片库,读取Exif信息到图片的自定义属性
生活随笔
收集整理的這篇文章主要介紹了
在WebPart中上传图片到SharePoint图片库,读取Exif信息到图片的自定义属性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SharePoint 圖片庫是個不錯的東西,默認就有很多的視圖,省了很多事,上傳圖片的界面其實功能也很強大,但是有時候并不是完全符合需求,有些東西你沒有辦法控制,所以有時候我們也在WebPart中上傳圖片到圖片庫中去。(上傳的圖片效果和使用默認界面上傳的圖片一樣,一樣會有所略圖等)
使用的是標準的ASP.Net FileUpload控件來上傳文件。
下面就是具體的代碼了:
//取得網站
????????????SPWeb?site?=?SPControl.GetContextSite(Context).AllWebs[tbSite_Name.Text];
????????????//SPPictureLibrary?pictureLibrary?=?(SPPictureLibrary)site.Lists[tbList_Title.Text];
????????????//SPUser?user?=?site.CurrentUser;
????????????//site?=?SPControl.GetContextSite(Context).AllWebs[tbSite_Name.Text];
????????????//取得文件上傳控件中的流,FileUpload1是ASP.Net?2.0中的標準文件上傳控件
????????????Stream?fStream?=?FileUpload1.PostedFile.InputStream;
????????????byte[]?contents?=?new?byte[fStream.Length];
????????????fStream.Read(contents,?0,?(int)fStream.Length);
????????????
????????????//這里只是取一個名字而已
????????????string?filename?=?FileUpload1.PostedFile.FileName;
????????????filename?=?filename.Substring(filename.LastIndexOf("\\")+2,
????????????????filename.Length-filename.LastIndexOf("\\")-2);
????????????filename?=?DateTime.Now.Year.ToString()?+?"."?+
????????????????DateTime.Now.Month.ToString()?+?"."?+
????????????????DateTime.Now.Day.ToString()?+?"-"?+
????????????????DateTime.Now.Hour.ToString()?+?"."?+
????????????????DateTime.Now.Minute.ToString()?+?"."?+
????????????????DateTime.Now.Second.ToString()?+?"."?+
????????????????DateTime.Now.Millisecond.ToString()?+?"."?+?filename;
????????????//這里就是上傳文件到圖片庫了,“tbdestUrl.Text?+?filename”表示保存圖片的位置,contents是文件流
????????????//SPFile?spfile?=?site.Files.Add(tbdestUrl.Text?+?filename,?contents,user,user,DateTime.Now,DateTime.Now);
????????????SPFile?spfile?=?site.Files.Add(tbdestUrl.Text?+?filename,?contents);
????????????
????????????//這里是讀取文件的Exif信息,用到第三方的一個類
????????????System.Drawing.Bitmap?bmp?=
?????????????new?System.Drawing.Bitmap(fStream);
????????????Goheer.EXIF.EXIFextractor?er?=
??????????????new?Goheer.EXIF.EXIFextractor(ref?bmp,?"");
????????????
????????????//我的圖片的每一項都有加一些自定義的屬性,這里就可以把讀出Exif信息修改上去
????????????spfile.Item["說明"]?=?((er["Equip?Make"]==null)?"N/a":er["Equip?Make"].ToString())?+?"?"
????????????????+?((er["Equip?Model"]?==?null)???"N/a"?:?er["Equip?Model"].ToString());
????????????spfile.Item["標題"]?=?"cleo測試標題";
????????????spfile.Item.Update();
????????????fStream.Close();
把項目源碼也附上吧:/Files/cleo/UploadPhoto2wss.rar
(我開發的是用戶控件,請使用SmartPart或者KaneBoy的包裝器部署)
使用的是標準的ASP.Net FileUpload控件來上傳文件。
下面就是具體的代碼了:
//取得網站
????????????SPWeb?site?=?SPControl.GetContextSite(Context).AllWebs[tbSite_Name.Text];
????????????//SPPictureLibrary?pictureLibrary?=?(SPPictureLibrary)site.Lists[tbList_Title.Text];
????????????//SPUser?user?=?site.CurrentUser;
????????????//site?=?SPControl.GetContextSite(Context).AllWebs[tbSite_Name.Text];
????????????//取得文件上傳控件中的流,FileUpload1是ASP.Net?2.0中的標準文件上傳控件
????????????Stream?fStream?=?FileUpload1.PostedFile.InputStream;
????????????byte[]?contents?=?new?byte[fStream.Length];
????????????fStream.Read(contents,?0,?(int)fStream.Length);
????????????
????????????//這里只是取一個名字而已
????????????string?filename?=?FileUpload1.PostedFile.FileName;
????????????filename?=?filename.Substring(filename.LastIndexOf("\\")+2,
????????????????filename.Length-filename.LastIndexOf("\\")-2);
????????????filename?=?DateTime.Now.Year.ToString()?+?"."?+
????????????????DateTime.Now.Month.ToString()?+?"."?+
????????????????DateTime.Now.Day.ToString()?+?"-"?+
????????????????DateTime.Now.Hour.ToString()?+?"."?+
????????????????DateTime.Now.Minute.ToString()?+?"."?+
????????????????DateTime.Now.Second.ToString()?+?"."?+
????????????????DateTime.Now.Millisecond.ToString()?+?"."?+?filename;
????????????//這里就是上傳文件到圖片庫了,“tbdestUrl.Text?+?filename”表示保存圖片的位置,contents是文件流
????????????//SPFile?spfile?=?site.Files.Add(tbdestUrl.Text?+?filename,?contents,user,user,DateTime.Now,DateTime.Now);
????????????SPFile?spfile?=?site.Files.Add(tbdestUrl.Text?+?filename,?contents);
????????????
????????????//這里是讀取文件的Exif信息,用到第三方的一個類
????????????System.Drawing.Bitmap?bmp?=
?????????????new?System.Drawing.Bitmap(fStream);
????????????Goheer.EXIF.EXIFextractor?er?=
??????????????new?Goheer.EXIF.EXIFextractor(ref?bmp,?"");
????????????
????????????//我的圖片的每一項都有加一些自定義的屬性,這里就可以把讀出Exif信息修改上去
????????????spfile.Item["說明"]?=?((er["Equip?Make"]==null)?"N/a":er["Equip?Make"].ToString())?+?"?"
????????????????+?((er["Equip?Model"]?==?null)???"N/a"?:?er["Equip?Model"].ToString());
????????????spfile.Item["標題"]?=?"cleo測試標題";
????????????spfile.Item.Update();
????????????fStream.Close();
把項目源碼也附上吧:/Files/cleo/UploadPhoto2wss.rar
(我開發的是用戶控件,請使用SmartPart或者KaneBoy的包裝器部署)
轉載于:https://www.cnblogs.com/Dragon-China/archive/2006/06/13/424931.html
總結
以上是生活随笔為你收集整理的在WebPart中上传图片到SharePoint图片库,读取Exif信息到图片的自定义属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 3.0新特性初步研究 Part5:
- 下一篇: 《职场一点诀 帆风顺,一定快乐?》读后感