{"id":405,"date":"2005-09-30T18:43:29","date_gmt":"2005-09-30T10:43:29","guid":{"rendered":"http:\/\/blog.axqd.net\/?p=405"},"modified":"2005-09-30T18:43:29","modified_gmt":"2005-09-30T10:43:29","slug":"multi-file-upload","status":"publish","type":"post","link":"https:\/\/blog.axqd.net\/?p=405","title":{"rendered":"\u591a\u6587\u4ef6\u6279\u91cf\u4e0a\u4f20"},"content":{"rendered":"<p>\u7528\u4e00\u4e2a\u9875\u9762\u5b9e\u73b0\u6587\u4ef6\u4e0a\u4f20\uff0c\u4e00\u822c\u53ea\u9700\u8981\u4f7f\u7528HtmlInputFile\u7684runat=server\u7248\u672c\u5c31\u884c\u4e86\uff0c\u4f46\u662f\u73b0\u5728\u6709\u4e9b\u4e0d\u540c\u7684\u5730\u65b9\uff1a<br \/>\n1\u3001\u76f4\u63a5\u4e0a\u4f20\u5230\u6570\u636e\u5e93\u7684image\u7c7b\u578b\u7684\u5b57\u6bb5\u4e2d\uff0c\u800c\u4e0d\u4ea7\u751f\u672c\u5730\u6587\u4ef6\uff1b<br \/>\n2\u3001\u591a\u4e2a\u6587\u4ef6\u540c\u65f6\u4e0a\u4f20\uff1b<br \/>\n3\u3001\u4e0a\u4f20\u7684\u6587\u4ef6\u7ec4\u6700\u540e\u8981\u540c\u5176\u4ed6\u76f8\u5173\u4fe1\u606f\u8fdb\u884c\u5173\u8054\uff1b<\/p>\n<p>\u89e3\u51b3\u65b9\u6cd5\u4e3b\u8981\u6709\u4e24\u79cd\uff1a<br \/>\n1\u3001\u6bcf\u6b21\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6\u5230\u4e34\u65f6\u76ee\u5f55\uff0c\u8fd4\u56de\u5e76\u4fdd\u5b58\u76f8\u5173\u4fe1\u606f\u5230ViewState\uff0c\u6700\u540e\u63d0\u4ea4\u7684\u65f6\u5019\uff0c\u7edf\u4e00\u5c06\u6587\u4ef6\u5199\u5165\u6570\u636e\u5e93\uff0c\u5e76\u6839\u636e\u76f8\u5173\u4fe1\u606f\u505a\u5173\u8054\uff1b<br \/>\n2\u3001\u6bcf\u6b21\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6\u5230\u6570\u636e\u5e93\uff0c\u8fd4\u56de\u5e76\u4fdd\u5b58\u76f8\u5173\u4fe1\u606f\u5230ViewState\uff0c\u6700\u540e\u63d0\u4ea4\u7684\u65f6\u5019\uff0c\u6839\u636e\u76f8\u5173\u4fe1\u606f\u505a\u5173\u8054\uff1b<br \/>\n3\u3001\u6bcf\u6b21\u91c7\u96c6HtmlInputFile\u4e2d\u7684\u4fe1\u606f\u5230ListBox\uff0c\u6700\u540e\u7edf\u4e00\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\uff0c\u5e76\u505a\u76f8\u5173\u5173\u8054\uff1b<\/p>\n<p>\u65e0\u7591\uff0c\u7b2c\u4e09\u79cd\u662f\u5176\u4e2d\u6700\u597d\u7684\u4e00\u79cd\uff0c\u4f46\u662f\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6\u5374\u6bd4\u8f83\u9ebb\u70e6\uff0c\u672c\u6765\u60f3\u5728\u63d0\u4ea4\u7684\u65f6\u5019\uff0c\u5206\u522b\u591a\u6b21\u8bbe\u7f6e HtmlInputFile.PostedFile.FileName\u5c5e\u6027\uff0c\u518d\u591a\u6b21\u8c03\u7528SaveAs\u8fdb\u884c\u4e0a\u4f20\uff0c\u4f46\u5728\u4e00\u6b21\u63d0\u4ea4\u8fc7\u7a0b\u4e2d\u5b83\u4e0d\u5141\u8bb8\u91cd\u8bbe FileName\u5c5e\u6027(\u4e8b\u540e\u60f3\u60f3\uff0c\u786e\u5b9e\u5e94\u8be5\u4e0d\u884c:P)<br \/>\n\u540e\u6765\u53c8\u60f3\u5728\u540e\u53f0\u52a8\u6001\u6dfb\u52a0HtmlInputFile\u63a7\u4ef6\u5e76\u4e14\u8bbe\u5176Visible\u5c5e\u6027\u4e3afalse\uff0c\u7ed3\u679c\u597d\u50cf\u8fd8\u662f\u4e0d\u884c\uff0c\u56e0\u4e3a\u8fd8\u662f\u4e0d\u51c6\u81ea\u5df1\u6307\u5b9a\u90a3\u4e2a\u6028\u5ff5\u7684FileName\u5c5e\u6027<\/p>\n<p>\u7ed3\u679c\uff1a<br \/>\n\u589e\u52a0\u6587\u4ef6\u6309\u94ae\uff1a<br \/>\n<code>if( null == m_htmlInputFile )<br \/>\n m_htmlInputFile = new ArrayList();<br \/>\nm_htmlInputFile.Add( FileInputField );<\/code><br \/>\n\u5176\u4e2dFileInputField\u4e3aSystem.Web.UI.HtmlControls.HtmlInputFile\u7c7b\u578b;<br \/>\n\u5e76\u4e14\u6ce8\u610f\u8bbe\u7f6em_htmlInputFile\u8fd9\u4e2aArrayList\u4e3astatic\uff0c\u4ee5\u9632\u6bcf\u6b21\u589e\u52a0\u6587\u4ef6\u540e\u88ab\u5237\u65b0\u4e3anull:(<br \/>\n\u8fd9\u91cc\u5176\u5b9e\u5c31\u6bcf\u6b21Add\u90a3\u4e2aHtml\u63a7\u4ef6\u5c31\u884c\u4e86\uff0c\u4ed6\u4eec\u90fd\u5bf9\u5e94\u76f8\u540c\u7684html\u63a7\u4ef6\uff0c\u4f46\u662f\u540e\u53f0\u7684\u5bf9\u8c61\u6bcfAdd\u4e00\u6b21\u589e\u52a0\u4e00\u4e2a:)<\/p>\n<p>\u63d0\u4ea4\u6309\u94ae\uff1a<br \/>\n<code>if( null == m_imageList )<br \/>\n m_imageList = new ArrayList();<br \/>\nif( null == m_imageTypeList )<br \/>\n m_imageTypeList = new ArrayList();<br \/>\nforeach( HtmlInputFile hif in m_htmlInputFile )<br \/>\n{<br \/>\n System.Drawing.Image image = System.Drawing.Image.FromStream( hif.PostedFile.InputStream );<br \/>\n m_imageList.Add( image );<br \/>\n m_imageTypeList.Add( hif.PostedFile.ContentType );<br \/>\n}<\/code><\/p>\n<p>\u663e\u793a\u56fe\u7247\uff1a<br \/>\n\u5728GetImage.aspx?ImageID=*\u9875\u9762\u7684Page_Load\u4e2d<br \/>\n<code> Response.ContentType = m_image.ImageType;<br \/>\n Response.BinaryWrite( m_image.Img );<\/code><br \/>\n\u6ce8\u610f\u91c7\u7528BinaryWrite\u4ee5\u53ca\u8bbe\u7f6eContentType\u4e3aimage\/pjpeg\u7b49<\/p>\n<p>\u6700\u540e\u5728\u4fdd\u5b58\u6587\u4ef6\u5230\u540e\u7aef\u6570\u636e\u5e93\u7684\u65f6\u5019\u6709\u70b9\u5c0f\u4e0d\u723d\uff1a<br \/>\n<code>MemoryStream ms = new MemoryStream();<br \/>\nimage.Save( ms, System.Drawing.Imaging.ImageFormat.Jpeg );\/\/image\u662fSystem.Drawing.Image<br \/>\nm_image = new byte[ms.Length];\/\/m_image\u662fbyte[]<br \/>\nms.Position = 0;<br \/>\n\/\/If Too Long, ...<br \/>\nms.Read( m_image, 0, Convert.ToInt32(ms.Length));<\/code><\/p>\n<p>\u8fd9\u91ccms.Length\u662flong\u7c7b\u578b\uff0c\u4f46\u662f\u540c\u4e00\u4e2a\u7c7b\uff0dMemoryStream\u7684Read\u65b9\u6cd5\u7684\u7b2c\u4e09\u4e2a\u53c2\u6570\u662fint\u578b\uff0c\u6d89\u53ca\u5230\u4e00\u4e2a\u5411\u4e0b\u7684\u7c7b\u578b\u8f6c\u6362\uff0c\u5982\u679cLength\u8fc7\u5927\uff0c\u5e94\u8be5\u8fd9\u91cc\u4f1a\u6709\u95ee\u9898\uff0c\u4e0d\u77e5\u662f\u600e\u4e48\u56de\u4e8b:(<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7528\u4e00\u4e2a\u9875\u9762\u5b9e\u73b0\u6587\u4ef6\u4e0a\u4f20\uff0c\u4e00\u822c\u53ea\u9700\u8981\u4f7f\u7528HtmlInputFile\u7684runat=server\u7248\u672c\u5c31\u884c\u4e86\uff0c\u4f46\u662f\u73b0\u5728 &hellip; <a href=\"https:\/\/blog.axqd.net\/?p=405\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201c\u591a\u6587\u4ef6\u6279\u91cf\u4e0a\u4f20\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-405","post","type-post","status-publish","format-standard","hentry","category-web"],"_links":{"self":[{"href":"https:\/\/blog.axqd.net\/index.php?rest_route=\/wp\/v2\/posts\/405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.axqd.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.axqd.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.axqd.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.axqd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=405"}],"version-history":[{"count":0,"href":"https:\/\/blog.axqd.net\/index.php?rest_route=\/wp\/v2\/posts\/405\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.axqd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.axqd.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.axqd.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}