【问题标题】:How can I use fopen function on PHP with a dynamic file path?如何通过动态文件路径在 PHP 上使用 fopen 函数?
【发布时间】:2018-03-09 05:11:51
【问题描述】:

我需要读取一个文件,然后将该内容上传到文本区域,但我让客户选择文件,但是,我不知道该怎么做。

我已经有东西了,代码已经读取了文件并上传了,但是,它只有一个特定的路线......

这就是我所拥有的:

$file_name = 'C:/Users/Downloads/'.$doc_name;
header("Content-Type: application/json");
$data =  array();
$file = fopen($file_name, "r+") or exit ("Error trying to open the file.txt");
while ($linea = fgets($file)){
    if(feof($file)) break; 
    $data[]=$linea;
}
fclose($file);
echo json_encode($data);

【问题讨论】:

  • 你想做什么?您的代码只是打开一个文件并回显内容?
  • 当你说“但我让客户端选择文件”时,你的意思是用户在浏览器中从他们的计算机中选择一个文件,然后你在当前的文本区域中显示该文件的内容页面?

标签: javascript php json file header


【解决方案1】:

我不知道我是否理解您的问题。 您应该始终知道上传文件的去向。您应该已经有一个目录,并将文件添加到该目录。或者,如果您想根据某些条件创建目录,您可以使用PHP function mkdir()

假设文件是​​通过 POST 请求上传/提交的。

您应该在提交中捕获文件并执行类似的操作。

<form action="uploadedFiles.php" method="post" enctype="multipart/form-data">
        Select file to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload File" name="submit">
    </form>

$_FILES["fileToUpload"]["name"]是提交的文件

$target_dir = 'C:/Users/Downloads/';
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

basename() 是另一个获取文件名的 PHP 函数

希望它对你有帮助,如果没有,请尝试更多地说明问题并显示更多代码。

编辑:您还应该检查文件大小和扩展名以避免安全问题。

编辑编辑:以防我没有说清楚。您应该根据文件扩展名的“白名单”/“黑名单”检查文件扩展名,并拒绝或允许上传。

【讨论】:

  • 检查扩展可以避免任何安全问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2017-04-12
  • 2019-02-28
  • 2012-07-13
  • 2021-07-07
相关资源
最近更新 更多