我想获取图像的路径以将其传递给控制器并从那里保存到 MySql 数据库的路径。
我正在使用 a<input type="file" />
来搜索图像,但是当然!当我将数据传递给控制器时,这种类型input
只会给我图像的名称而不是路径。
我该怎么办?在这里我直观地展示。
.cshtml
@using (Html.BeginForm("LibroInsertado", "Home", FormMethod.Post))
{
<br />
<input type="Text" class="form-control" id="txt_bookName" name="txt_bookName" placeholder="Nombre de libro" required />
<br />
<input type="number" class="form-control" id="nbr_lanzamiento" name="nbr_lanzamiento" min="500" max="9999" placeholder="Año de lanzamiento ej: 2019" required />
<br />
<div class="form-group">
<label for="exampleFormControlSelect1">Autor</label>
<select name="ddlAutor" class="form-control" id="exampleFormControlSelect1" required>
<option></option>
@foreach (Autor item in autorList)
{
<option [email protected]>@item.Nombre</option>
}
</select>
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Categoria</label>
<select name="ddlCategory" class="form-control" id="exampleFormControlSelect1" required>
<option></option>
@foreach (Categoria item in categoryList)
{
<option [email protected]>@item.Nombre</option>
}
</select>
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Editorial</label>
<select name="ddlEditorial" class="form-control" id="exampleFormControlSelect1" required>
<option></option>
@foreach (Editorial item in editorialList)
{
<option [email protected]>@item.Nombre</option>
}
</select>
</div>
<textarea name="txta_description" maxlength="300" class="form-control" rows="4" cols="40" placeholder="Descripcion del libro" required></textarea>
<br />
<input type="number" class="form-control" value="nbr_cantidad" name="nbr_cantidad" min="1" max="10000" placeholder="Cantidad de unidades" required />
<br />
@*poner que acepte coma en el precio*@
<input type="number" class="form-control" id="nbr_price" name="nbr_price" maxlength="10" min="1" max="500000" placeholder="Precio $" required /><br />
<input type="file" class="form-control" id="itf_urlImage" name="itf_urlImage" placeholder="Url imagen" required /><br />
@*<input type="Text" class="form-control" id="txt_urlImage" name="txt_urlImage" maxlength="500" placeholder="Url imagen" required /><br />*@
<input type="submit" name="btn_AgregarLibro" value="Agregar Libro" />
<input type="reset" value="Restaurar">
}
不幸的是,您所要求的不能那样做。出于安全原因,不允许浏览器访问
FileSystem
.您仍然可以尝试使用jQuery来实现,尽管不确定它是否适用于所有浏览器。
对于 IE 11: 您可以在选择这样的图像时访问信息:
对于 Mozilla:
注意:的测试示例
console.log()
。更新 1:
根据您在问题中的新评论,所需的路径是Server path而不是Client path 。
在这种情况下,获取图像完整(绝对)路径的正确选项如下:
更新 2:
我留下了一篇关于
<input type="file" />
ASP.NET MVC 的推荐读物:How to upload files to the server in an ASP.NET MVC application我在控制器中以这种方式解决了这个问题:创建一个变量
String ruta = "principal/imagenes/";
,其中包含我在项目中拥有的图像文件夹的路径,然后我与它提供给我的图像名称进行连接<input type="file" />
这里是控制器