試圖使用文件輸入上載表單,只從輸入流獲取表單字段而不是File.Request方法。如何將其轉換爲要存儲在SQL中的圖像
表單包含一個文件輸入和幾個文本框,所以我不能上傳流到數據庫。
我轉換爲字符串使用這種方法
int len = Convert.ToInt32(context.Request.InputStream.Length);
byte[] stream = new byte[len];
context.Request.InputStream.Read(stream, 0, len);
string mime = Encoding.UTF8.GetString(stream);
,然後在邊界處拆分的multipart/form-data的和讀取的每個部分的第一行,以查看是否它的一個文件或沒有。你可以看到完整的代碼Here
的文件將是這個樣子
-----------------------------17901701330412
Content-Disposition: form-data; name="file"; filename="IMG00004-20101209-1704.jpg"
Content-Type: image/jpeg
�����ExifII* ����(1�2�i��Research In MotionBlackBerry 9105HHRim Exif Version1.00a2010:12:09 17:03:59 ��n�0220�v���� � ��� �2010:12:09 17:03:59��� $ &&$ #"(-:1(+6+"#2D36;[email protected]@'0GLF?K:[email protected]> >)#)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>��!������ }!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������� w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������������������������������� ?�`��ⳓ5��f)¤b��a�BS�Sb�)Xz�֝�q�"s�K�PA���}F7&��Vm��GӬ��%]� Uҵ�Z7��h�`�@&i ��i��MKB�P��r���-�B|ϛ=3Yٶ ��
和領域將是這個樣子
-----------------------------17901701330412
Content-Disposition: form-data; name="parent"
clientphotos
解析領域是容易的,獲得的圖像內容很簡單,但是將它保存到數據庫中,以便我可以將它作爲圖像讀出來,不是那麼容易。
我試過byte[] data = Encoding.UTF8.GetBytes(rawdata);
但輸出結果不正確。
有沒有人有任何想法如何拍攝圖像內容並將其保存爲byte[]
,因爲它應該是?
UPDATE
第一行是從正從context.Request.Files[name].InputStream.Read(data, 0, fs);
圖像的第二行是使用Encoding.UTF8.GetBytes(rawdata);
第三行是使用Encoding.ASCII.GetBytes(rawdata);
顯然,第一線是正確的,並工作。
現在我只是在使用的第一行得到的結果,它可能會保持下去,除非有人能教我如何從輸入流中讀取它。
UPDATE
找到了一個不錯的地方共享代碼Source Code麻煩的是上線49現在只是讀取Request.Files
這確實是一個圖像,所以__do不會將其轉換爲任何形式的文本。 –
如果我把它作爲字符串,我會得到「無法將參數值從字符串轉換爲字節[]。」 – Christian