2017-10-21 29 views
0

我想让我的代码携带用户上传文件的名称(使用下面的代码),并在上传后打印字符串“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"); 
?> 
+0

什么是MD5在这里做一个价值?只需使用['uniqid'](http://php.net/manual/en/function.uniqid.php)并完成它。 – tadman

+0

@cramopy''不需要在HTML中关闭 – rickdenhaan

+0

@cramopy - 输入元素的结束标记被禁止(并且结束标记使用'/'而不是'''''!) – Quentin

回答

1

你想用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的解释。

-1
$('form').on('submit', function(){ 
var name = $('input[type=file]').val() 
$('#inputHidden').value(name) 
}) 

只要抓住在使用jQuery提交事件并添加它作为一个输入型隐藏

+0

这是不切实际和无稽之谈 –

相关问题