获取值输入文件为空
这是我的小问题,当我试图从我输入的type =“file”中获取值时。获取值输入文件为空
这才是我应该怎么做的:
<tr ng-repeat="imagenDatos in tableImagenesPunto | filter: busquedaDatosPunto " >
<td>PNG</td>
<td>{{imagenDatos.id_puntoEmpresa}}</td>
<td>{{imagenDatos.nombre_punto}}</td>
<td>{{imagenDatos.direccion_punto}}</td>
<td>
<input type="file" name="uploadFile[]" id="inputFileServer" accept="image/png" ng-click="inputChange()" />
</td>
<td>{{imagenDatos.ruta_punto}}</td>
<td>
<button type="submit" class="btn btn-info btn-sm " value="Upload3" ng-click="uploadFile()" id="btnSubirArchivo" role="button" data-original-title="Subir Logo">
<span class="glyphicon glyphicon-open-file" aria-hidden="true"></span>
</button>
</td>
</tr>
而且这是在JS
$scope.uploadFile = function()
{
var file = document.getElementById('inputFileServer').files[0];
console.log(file);
}
结果是“不确定的”,我怎么能知道什么是错?
在用户上传文件之前,您可能正在读的是files
。尝试在访问files[0]
之前验证files.length
。这将防止错误。
在下面的代码片段中,我设置了一个setInterval
,它打印每秒钟的文件数量。您可以看到,一旦用户上传文件,计数将被更新。
在您的应用程序中,您可以听输入的change
事件,然后基于文件长度验证,您可以访问它。
var files = document.getElementById('inputFileServer').files;
setInterval(function() {
files = document.getElementById('inputFileServer').files;
console.log("Number of files: ", files.length);
}, 1000);
function inputChange() {
alert("Input changes");
}
<input type="file" name="fileToUpload[]" id="inputFileServer" accept="image/png" onchange="inputChange()" />
以及演示不会做太多... – epascarello
@epascarello我想显示文件长度验证。另外,我只是添加了更改事件,以便他们可以在选择文件后读取文件。还有什么你能想到的? – Nisarg
结果是文件数量:0, – jecorrales
以及你什么时候打电话给你的代码? – epascarello
您是否选择了带有文件输入的文件?你期望在控制台上显示什么值? – Quentin
@quentin是的,我选择了文件,但它需要作为“没有选择” – jecorrales