猿问

如何在使用javascript,jquery-ajax更改<input type ='file'>

如何在使用javascript,jquery-ajax更改<input type ='file'>

如何在选择文件时获取文件的完整路径 <input type=‘file’>

<input type="file" id="fileUpload"><script type="text/javascript">function getFilePath(){
     $('input[type=file]').change(function () {
         var filePath=$('#fileUpload').val(); 
     });}</script>

但filePath var包含only name所选文件,而不是full path
我在网上搜索过,但出于安全考虑,似乎浏览器(FF,chrome)只是给出文件名。
有没有其他方法来获取所选文件的完整路径?


弑天下
浏览 856回答 4
4回答

潇潇雨雨

试试这个:它会给你一个临时路径而不是准确的路径,你可以使用这个脚本,如果你想在这个jsfiddle例子中显示选定的图像(通过selectng图像以及其他文件尝试): -的jsfiddle这是代码: -HTML: -<input&nbsp;type="file"&nbsp;id="i_file"&nbsp;value="">&nbsp;<input&nbsp;type="button"&nbsp;id="i_submit"&nbsp;value="Submit"><br><img&nbsp;src=""&nbsp;width="200"&nbsp;style="display:none;"&nbsp;/> <br><div&nbsp;id="disp_tmp_path"></div>JS: -$('#i_file').change(&nbsp;function(event)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tmppath&nbsp;=&nbsp;URL.createObjectURL(event.target.files[0]); &nbsp;&nbsp;&nbsp;&nbsp;$("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0])); &nbsp;&nbsp;&nbsp;&nbsp;$("#disp_tmp_path").html("Temporary&nbsp;Path(Copy&nbsp;it&nbsp;and&nbsp;try&nbsp;pasting&nbsp;it&nbsp;in&nbsp;browser&nbsp;address&nbsp;bar)&nbsp;-->&nbsp;<strong>["+tmppath+"]</strong>");});它不完全是你想要的,但它可以帮助你在某个地方。

紫衣仙女

你不能这样做 - 由于安全问题,浏览器不允许这样做。使用input type = file对象选择文件时,value属性的值取决于用于显示网页的安全区域的“将文件上载到服务器时包括本地目录路径”的安全设置值包含输入对象。仅当启用此设置时,才会返回所选文件的完全限定文件名。禁用该设置后,Internet Explorer 8将使用字符串C:\ fakepath \替换本地驱动器和目录路径,以防止不适当的信息泄露。和别的您);在更改事件功能结束时错过了此操作。也不要为change事件创建函数而只是使用它,如下所示,<script&nbsp;type="text/javascript"> &nbsp;&nbsp;&nbsp;&nbsp;$(function() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('#fileUpload').on('change',function&nbsp;() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;filePath&nbsp;=&nbsp;$(this).val(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(filePath); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;});</script>

忽然笑

你不能。安全性使您无法了解客户端计算机的归档系统 - 它甚至可能没有!它可能是MAC,PC,平板电脑或支持互联网的冰箱 - 你不知道,不知道也不会知道。让你拥有完整的路径可以为你提供有关客户端的一些信息 - 特别是如果它是一个网络驱动器。实际上,您可以在特定条件下获取它,但它需要ActiveX控件,并且在99.99%的情况下不起作用。你无论如何都无法使用它将文件恢复到原始位置(因为你完全无法控制下载的存储位置,或者即使存储了它们),所以在实践中它对你来说并没有多大用处。
随时随地看视频慕课网APP
我要回答