如何携带文件名到php post方法
我想让我的代码携带用户上传文件的名称(使用下面的代码),并在上传后打印字符串“Your file thefilename.txt has been uploaded “到屏幕上,但行打印没有值的文件名.txt行只是:”您的文件已上传“,我用文本输入测试它,它携带的数据,但不是文件名,任何帮助?如何携带文件名到php post方法
的index.php:
<form action="uxV637__.php" method="post" enctype="multipart/form-data">
<input type="file" name="file_to_upload" id="file_to_upload"><br>
<input type="submit" value="Upload"><br>
</form>
uxV637 __ PHP:
<?php
$fname_ = $_POST['file_to_upload'];
echo "Your file ".$fname_." has been uploaded...";
echo "Text is: ".$_POST['text'];
$ip = $_SERVER['REMOTE_ADDR'];
$fname = substr(md5(microtime()),rand(0,26),5);
move_uploaded_file($_FILES["file_to_upload"]["tmp_name"], "uploaded_files/".$fname.".txt.safe");
?>
你想用the superglobal $_FILES
array,具体而言,name
数组的键对应于您的文件字段。
例如,在你的代码,该文件input
场被命名为file_to_upload
,所以你会访问使用$_FILES['file_to_upload']['name']
文件名,如:
echo "Your file " . $_FILES['file_to_upload']['name'] . " has been uploaded...";
见$_FILES
阵列in the documentation的解释。
当你处理文件上传,不$_POST
你应该使用$_FILES
保留变量。
你只需要更换此:
$fname_ = $_POST['file_to_upload'];
有:
$fname_ = $_FILES['file_to_upload']['name'];
检查$_FILES
保留可变文档: http://php.net/manual/en/reserved.variables.files.php
好解释'+1 ' – Akintunde007
$('form').on('submit', function(){
var name = $('input[type=file]').val()
$('#inputHidden').value(name)
})
只要抓住在使用jQuery提交事件并添加它作为一个输入型隐藏
这是不切实际和无稽之谈 –
什么是MD5在这里做一个价值?只需使用['uniqid'](http://php.net/manual/en/function.uniqid.php)并完成它。 – tadman
@cramopy''不需要在HTML中关闭 – rickdenhaan
@cramopy - 输入元素的结束标记被禁止(并且结束标记使用'/'而不是'''''!) – Quentin