如何从客户端浏览器到服务器php获取文件?

如何从客户端浏览器到服务器php获取文件?,php,server,client,Php,Server,Client,好的,也许这是一个简单或明显的问题,但是如何获取文件并让服务器读取数据?我对web开发的某些方面还不熟悉,但我假设您可以通过客户端/浏览器读取内容,然后通过php?在服务器上操作数据?。。。如果不是这样的话,你必须上传文件,下载到服务器,然后让它读取数据,删除文件,然后处理数据吗?试图找到一些示例代码,但是从W3到PHP教程的所有内容都是关于您是否在本地拥有该文件。我计划让用户在他们的机器上创建数据cvs文件,然后以某种方式将其上传/读取到服务器。我正在寻找一个概念,但如果你能指出一些例子代码,

好的,也许这是一个简单或明显的问题,但是如何获取文件并让服务器读取数据?我对web开发的某些方面还不熟悉,但我假设您可以通过客户端/浏览器读取内容,然后通过php?在服务器上操作数据?。。。如果不是这样的话,你必须上传文件,下载到服务器,然后让它读取数据,删除文件,然后处理数据吗?试图找到一些示例代码,但是从W3到PHP教程的所有内容都是关于您是否在本地拥有该文件。我计划让用户在他们的机器上创建数据cvs文件,然后以某种方式将其上传/读取到服务器。我正在寻找一个概念,但如果你能指出一些例子代码,这将是伟大的太。谢谢

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

*更新了一个小代码段。它不会打开流/文件,因为$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中的所有原始数据作为有效负载发送到服务器吗?我太不知道如何连接/操作客户端文件了。所有fopen/fread都不工作,因为php在服务器上,而不是在客户端。警告:fopen(mydata.csv):无法打开流:第25行的/Applications/MAMP/htdocs/scsrs/test.php中没有这样的文件或目录无法打开文件。我将我的输出放入。我错过了一些东西。。。你是说我需要下载文件。。。很抱歉造成混淆,但我无法读取文件,或者如果文件不在我的机器上,我认为我可以读取。html文件输入标记只会返回文件名,仅此而已。我想我需要把文件带到服务器上,然后才能读入,这并不意味着如果我可以读入并发送文件,那么效率会更高。。。您是否在表单上添加了enctype=“多部分/表单数据”?
    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']);