Android到ASP.NET上传保存路径

问题描述:

我从我的android设备上传图像到我的ASP.NET MVC服务器。Android到ASP.NET上传保存路径

保存我想用路径 HttpContext.Server.MapPath("../") + "App_Data/" + HttpContext.User.Identity.Name + model.Firstname + "-" + model.Surname + "-" + System.IO.Path.GetFileName(Request.Files[0].FileName);

应该给/App_Data/AccountName/firstname-surname-filename.jpg

这个工作对我来说,当我这样做的MVC本身使用

@Html.LabelFor(m => m.Firstname) 
@Html.TextBoxFor(m => m.Firstname)    

@Html.LabelFor(m => m.Surname) 
@Html.TextBoxFor(m => m.Surname)    

<label for="file1">Upload Image</label> 
<input type="file" name="picture" id="picture" />  

<input type="submit" /> 

为了从Android应用程序,我需要在MVC中使用JavaScript从如下

执行上传
<script type="text/javascript"> 
function showAndroidToast(toast) 
{ 
    Android.showToast(toast); 
} 
</script> 
<input type="submit" value="Scan Fingerprint" onClick="showAndroidToast('Scanning fingerprint')" />' 

showToast函数是我android应用程序中的上传函数。

我可以从android上传图片,但即使我已登录到ASP.NET应用程序,保存路径对HttpContext.User.Identity.Name不起作用,我需要在最低限度工作。如果我还将[Authorize]添加到我的上传控制器中,上传将不起作用,这进一步表明它没有使用登录信息。

从Android设备上传到ASP.NET Web服务时可以这样做吗?

由于图像载上一个新的线程(JavascriptInterface)进行,您将需要以某种方式识别图像由令牌特定文件名的手段被上传。从这里你可以在文件上传后从你的MVC中搜索文件。一旦它捕捉到文件已被上传,它可能会重命名或将文件移动到指定的文件夹,使用HttpContext.User.Identity.Name等。

例如,我会创建一个随机字符串(ndNk3KasL.jpg),将其与上传触发器并将文件命名为此。收到上传请求后,我会检查它是否是正确的文件名ndNk3KasL,然后重命名/移动它(如果是)。

+0

看起来像一个讨厌的方法,但它确实有效。 – Yorimitsu 2013-08-29 00:05:34