我试图在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