Android 到 ASP.NET 上传保存路径

标签 android asp.net-mvc upload

我正在将图像从我的 android 设备上传到我的 ASP.NET MVC 服务器。

我想使用的保存路径是 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] 添加到我的上传 Controller ,上传将无法进行,这进一步表明它没有使用登录信息。

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

最佳答案

由于图像上传是在新线程 (JavascriptInterface) 上执行的,因此您需要通过 token 特定文件名 以某种方式识别正在上传的图像.文件上传后,您可以从这里“搜索”您的 MVC 中的文件。一旦发现文件已上传,它可能会使用 HttpContext.User.Identity.Name 等将文件重命名或移动到您选择的指定文件夹。

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

关于Android 到 ASP.NET 上传保存路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16137649/

相关文章:

Android -- 设备解锁时会发生什么?

java - 如何防止重新启动正在运行的服务 - Android

android - 从 DialogFragment 接收回(到 Fragment)数据的最佳方式是什么

c# - 当 url 末尾有 DOT (.) 时,Asp.Net MVC 路由操作方法不会调用

android - 使用什么来存储目录应用程序的项目更好? SQL 数据库还是其他类型的数据结构?

asp.net-mvc - ASP.NET MVC 中的 RedirectToRoute 和 RedirectToAction 有什么区别?

c# - ASP.NET Identity - 匿名配置文件

java - 上传到imgur,已经一周失败了

php - 只上传txt文件

PHP 导入失败