我有一个带有两个输入字段的表单,一个type=file
和另一个type=text
。
我想:
type=file
使用 php 选择要上传的带有字段的文件- 获取正在上传的文件的文件名
- 插入字段
upload dir/file_name
_type=text
文件上传正常。问题是我file name
弄错了,取决于我使用的浏览器。
- Firefox工作正常,我得到:
somepath/file_name.ext
- IE(10)让我获得完整的本地文件路径:
somepath/C:\Users\User\Desktop\file_name.ext
- Chrome变得可爱并返回:
somepath/C:\fakepath\file_name.ext
我该如何解决这个问题?我只需要file_name.ext
,就像 Firefox 一样。不用说,我需要在选择文件时和提交表单之前检测到文件名并更改相应的文本字段。
HTML部分:
<form enctype="multipart/form-data" action="" method="post">
<input name="data_up" id="data_up" type="file" /><br>
<input name="data" id="data" type="text" value="<?php if(isset($_POST['submit'])) { echo $_POST['data']; } ?>" />
<button name="submit" type="submit">Submit</button>
</form>
PHP 部分(简化,需要添加安全性):
if (isset($_POST['submit'])) {
if ($_FILES["data_up"]["error"] == 0) {
move_uploaded_file($_FILES["data_up"]["tmp_name"], "somepath/".$_FILES["data_up"]["name"]);
}
}
JS部分:
<script type="text/javascript">
$(function() {
$('#data_up').change(function () {
var fileName = $(this).val();
$('#data').val('somepath/'+fileName);
});
});
</script>