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,然后重命名/移动它(如果是)。
看起来像一个讨厌的方法,但它确实有效。 – Yorimitsu 2013-08-29 00:05:34