我想發送一個imagedata到我的數據庫,但我不知道如何讓它工作。這是我當前的代碼:試圖發送一個ImageData到我的數據庫
這是我的數據庫csfile,我試圖創建一個圖像到我的數據庫(它正在工作,但我不知道如果我應該發送它作爲字節[]作爲我的數據庫需要它作爲一個文件)
static public async Task<bool> createInfo (byte[] thePicture) // should I send it as byte??
的網頁,我「創造」,我發到我的數據庫csfile數據。
myViewModel = new PhotoAlbumViewModel();
async void button (object sender, EventArgs args)
{
var createResult = await parseAPI.createInfo
(myViewModel.ImageData); //sending my imagedata to my database
}
而且我PhotoAlbumViewModel,我創建包含圖象 - 字節圖象 - :
private byte[] imageData;
public byte[] ImageData { get { return imageData; } }
private byte[] ReadStream(Stream input)
{
byte[] buffer = new byte[16*1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
public async Task SelectPicture()
{
Setup();
ImageSource = null;
try
{
var mediaFile = await _Mediapicker.SelectPhotoAsync(new CameraMediaStorageOptions
{
DefaultCamera = CameraDevice.Front,
MaxPixelDimension = 400
});
VideoInfo = mediaFile.Path;
ImageSource = ImageSource.FromStream(() => mediaFile.Source);
imageData = ReadStream(mediaFile.Source);
}
catch (System.Exception ex)
{
Status = ex.Message;
}
}
更新數據庫cscode:
static public async Task<bool> createInfo (byte[] thePicture)
{
var httpClientRequest = new HttpClient();
httpClientRequest.DefaultRequestHeaders.Add ("X-Parse-Application-Id", appId);
httpClientRequest.DefaultRequestHeaders.Add ("X-Parse-REST-API-Key", apiKey);
var postData = new Dictionary <object, object>();
postData.Add ("image", thePicture);
var jsonRequest = JsonConvert.SerializeObject(postData);
jsonRequest = jsonRequest.Replace ("\"ACLDATA\"", "{\""+userId+"\" : { \"read\": true, \"write\": true }, \"*\" : {}}");
HttpContent content = new StringContent(jsonRequest, System.Text.Encoding.UTF8, "application/json");
var result = await httpClientRequest.PostAsync("https://api.parse.com/1/classes/Info", content);
var resultString = await result.Content.ReadAsStringAsync();
return true;
}
我看不到將代碼存儲到數據庫的代碼,相關的代碼確實在parseAPI.createInfo中,如果它接受一個字節數組,那麼代碼是正確的,一個文件只是一堆字節,在數據庫中,「文件」或「圖像」字段類型等等都表示字節數組。 – Gusman
用更多來自createInfo的代碼更新了它。只是向下滾動到末尾 – DiddanDo
你的答案是在你的代碼中,它只需要一個字節數組,所以一切都很好;) – Gusman