【问题标题】:How to get a file from client browser to server php?如何从客户端浏览器获取文件到服务器php?
【发布时间】:2018-11-29 20:49:20
【问题描述】:

好的,也许这是一个简单或明显的问题,但是您如何获取文件并让服务器读取数据?我对网络开发的某些方面很陌生,但我认为您可以通过客户端/浏览器读取内容,然后通过 php 操作服务器上的数据?...所以如果不是这种情况,您是否必须上传文件,所以将它下载到服务器然后让它读取数据,删除文件然后操作数据?试图找到一些示例代码,但从 W3 到 PHP 教程的所有内容都是关于您是否在本地拥有该文件。我计划让用户在他们的机器上创建数据、cvs 文件,然后以某种方式将其上传/读取到服务器。我正在寻找一个概念,但如果您能指出一些示例代码,那也很棒。谢谢

顺便说一句,我使用 PHP 和 HTML,我看过一些 java 的东西,但我不是很熟悉。

*更新了一个小代码sn-p。它不会打开流/文件,因为 $file 只是客户端计算机上的名称,而不是位于我的服务器上。我以为它会加载它......

<!DOCTYPE html>
<html>
<body>

<?php

if(isset($_POST["cvsfile"])){
$file = $_POST["cvsfile"];

  $handle = fopen($file, 'r');
   if (!$handle)
    die('Cannot open  file.');
  $rows = array();
 //Read the file as csv
  while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

      $rows[] =  $data;

   }

     print_r($array);

  fclose($handle);
}
?>

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    CVS File:
    <input type="file" name="cvsfile">
    <input type="submit" value="file" name="submit">
 </form>

</body>
</html>

【问题讨论】:

  • 你可以访问存储它的tmp文件夹使用内容然后不要上传它
  • 您没有提供任何代码,因此很难给出完整的答案。我可以告诉您的是,您将希望通过表单 POST 或 AJAX 调用(客户端页面上的 JavaScript 代码)将文件发送到服务器上的端点。然后您可以通读服务器上的文件。或者,您可以将 csv 中的所有原始数据作为有效负载发送到服务器,无需文件。
  • 您能否指出如何将所有原始数据从 csv 发送到服务器作为有效负载的方向?我很迷茫如何连接/操作客户端文件。所有 fopens/freads 都不起作用,因为 php 在服务器上而不是客户端上。

标签: php server client


【解决方案1】:
    function CSVImport($file) {
  $handle = fopen($file, 'r');
  if (!$handle)
      die('Cannot open  file.');
  $rows = array();
  //Read the file as csv
  while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {

      $rows[] =  $data;

  }

  fclose($handle);

  return $rows;
}

$csvArray = CSVImport($file['tmp_name']);

如果您上传一个文件,那么它将从中获取所有数据,而无需在任何地方下载该文件

【讨论】:

  • 警告:fopen(mydata.csv):无法打开流:第 25 行的 /Applications/MAMP/htdocs/scsrs/test.php 中没有此类文件或目录无法打开文件。
  • 我把我的输出。我遗漏了一些东西...您的意思是我需要下载文件...抱歉造成混淆,但我无法读取文件,或者如果不在我的机器上,我认为我可以。 html 文件输入标签只会返回文件名,仅此而已。我假设我需要先将文件带到服务器上,然后才能读取它,这并没有使我可以读取并发送它,这样效率会更高。
  • 用你的 HTML 编辑帖子...你把 enctype="multipart/form-data" 放在你的表单上了吗?
猜你喜欢
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 2011-08-23
  • 2016-04-10
相关资源
最近更新 更多