我試圖在ravenDb中保存附件。我收到文件未找到錯誤。ravendb上傳文件錯誤
MVC視圖:
<input type="file" name="file" id="Ids2" style="float:right"/>
在一個AJAX調用,我傳遞在上述控制到控制器的方法選擇的文件名的值 - 其輪流發送文件名來調用自定義方法「Upload」
public virtual string Upload(string fileName)
{
IDocumentSession session = GetCurrentDocumentSession();
var id = "upload/" + randomGen();
session.Advanced.DatabaseCommands.PutAttachment(id,null,
File.ReadAllBytes(fileName), optionalMetaData);
return id;
}
我得到C:\ ProgramFiles(x86)....沒有指定文件。 可以說在視圖中 - 我瀏覽到C:/Doc1.txt並單擊添加按鈕,在視圖上保存一堆其他字段,並從文件上傳控件中選取文件名/路徑。
我得到session.advance.databasecommands錯誤...線
找不到文件「C:\ Program Files文件(x86)的\ Common Files文件\ Microsoft共享\ DevServer \ 10.0 \文檔1。文本'。
如果我手動移動Doc1.txt文件到上面的位置,ravenDB保存附件,我可以從本地主機看出來:8080 /靜態/上傳/鍵值
我怎樣才能讓ravenDB走從文件的位置的用戶選擇,而不是從它看起來像C的默認位置是什麼:PROGRAMFILES .....
編輯:
function() {
var iFile = iContainer.find('#Ids2').val();
var DataToSave = {
'Attachment' : iFile
};
var encodedData = $.toJSON(DataToSave);
$.ajax({
type: 'POST' ,
url: '/AttController/Attach' ,
data: encodedData,
contentType: 'application/json; charset=utf-8' ,
success: function (rc) {
if (rc.Success) {
// more javascript reroutes..business logic
}
else {
alert(rc.Message);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert('Error attaching \n' + xhr.response);
}
});
};
你能提供ajax嗎?我想我知道爲什麼,但我想在回答之前確定 – 2012-07-19 19:54:15
謝謝肖恩C ..請參閱OP編輯 – ZVenue 2012-07-19 20:16:56