如何更改为文件输入表单显示的文本,或"输入类型='文件' "

时间:2016-12-19 08:16:13

标签: php html forms input

这有属性吗?因为如果有,我找不到它。

我想要做的只是回显用户在提交表单后选择的文件名。为了清楚起见,它已经显示了文件名,但问题是表单可能以错误的状态提交,在这种情况下,黄色文本会返回到"没有选择文件。"我只需要在提交表单后保留文件名。

我有一张表格......

 <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data">



                    <?php
//upload files here. 

                    $fcount = 0;
                    foreach ($layouts[$my_layout] as $key => $value) {
                        //create the form
                        echo 'choose an image with an aspect ratio of ' . $value;
                        ?>
                    <input type="file" name="filesToUpload[]" >
</form>

在页面上,我想在提交表单后,在选择这样的文件时将黄色文本更改为文件名。

https://github.com/BStricklin/DataViz

2 个答案:

答案 0 :(得分:2)

虽然您明确的问题是询问如何更改文本,但隐含的问题是您要设置输入的值,以便再次上传相同的文件。

你不能这样做。这将需要允许页面作者确定从用户的计算机上传的文件。这将是一个严重的安全风险。

您可以做的是将上传的文件存储在服务器上(例如,在定期删除旧文件的临时目录中,例如使用cron),并以新的形式对其进行引用。

 <label> <input type="checkbox" name="already_uploaded_file" value="my_file_identifier" checked> Use foo.jpeg </label> 
 <label> Upload a different file <input type="file" name="foo"> </label>

答案 1 :(得分:0)

获得文件后,您应该可以从中获取originalName属性。试试$fileName = $request->file('name')->getClientOriginalName();

注意:这是未经测试的,我假设file()对象上的Request方法返回UploadedFile实例,而Laravel的UploadedFile类要么扩展Symfony的或直接使用它。