PHP csv上载文件不在服务器上

PHP csv上载文件不在服务器上,php,csv,upload,Php,Csv,Upload,我编写了一个简单的脚本来上传一个csv文件,然后更新一个数据库表。但是,即使我得到一个temp$_FILES['update']['tmp_name']路径,该文件也不在服务器上的这个位置。有人知道这是什么意思吗?这可能是权限问题吗?这是一个Godaddy共享托管帐户 这是我的表单和处理程序(数据库部分还没有就位。我现在只是想获取文件内容): 选择要从计算机上加载的CSV或XLS文件 我得到的错误是fopen(/tmp/php05Lebo/certificate users.csv)

我编写了一个简单的脚本来上传一个csv文件,然后更新一个数据库表。但是,即使我得到一个temp$_FILES['update']['tmp_name']路径,该文件也不在服务器上的这个位置。有人知道这是什么意思吗?这可能是权限问题吗?这是一个Godaddy共享托管帐户

这是我的表单和处理程序(数据库部分还没有就位。我现在只是想获取文件内容):


选择要从计算机上加载的CSV或XLS文件


我得到的错误是fopen(/tmp/php05Lebo/certificate users.csv):无法打开流:没有这样的文件或目录,并且可以肯定的是,该文件夹在/tmp中不存在。谢谢

您从未将临时文件移动到$file路径,因此您的$file无效。使用
move\u uploaded\u file()
重命名临时文件并将其保存在服务器上,或者如果您不想在首次上载后访问该文件,请设置
$file=$\u FILES['update']['tmp\u name']

<?php
    if ( !empty($_POST['uploadFile']) ) {
        $name = $_FILES['update']['name'];
        echo $_FILES['update']['type'] . '<br />';
        echo $_FILES['update']['size'] . '<br />';
        $path = $_FILES['update']['tmp_name'];
        echo $_FILES['update']['error'] . '<br />';
        if(move_uploaded_file($_FILES['update']['tmp_name']),$name){
            $file_open = fopen($name, 'r');
            $data = fgetcsv( $file_open, 1000, ',');
            print_r($data);
        }else
           echo 'Unable to upload file';
    }
?>


您从未费心检查上传是否成功。由于某种原因,$\u文件中有一个
['error']
参数。您还可以访问客户端文件名。上传到服务器的内容将进入一个随机命名的tmp文件,该文件列在
['tmp_name']
中。所以你的
$file
是完全错误的。嗨,马克-我确实检查了错误(注意我回显了那个变量),它生成了一个“0”。所以没有错误。我不知道你为什么说我在使用客户端站点路径。我的$path变量是tmp_名称。如果我误解了你,请澄清。Thank$path包含临时文件的完整路径,例如:t.
/tmp/this/that/asdfasdfasdf
。您正在将其添加到客户端文件名,生成服务器上不存在的
/tmp/this/that/asdfasdf/kittens.jpg
。确定。我发现我把临时名称和临时文件夹搞混了。我想上传的文件应该是这样的:tmp_name/name。但它只是tmp_名称。顺便说一下,这将把文件上传到当前目录。如果您想在其他地方使用它,请在$nameKSealey之前预先设置路径。问题实际上是我错误地使用了tmp_name变量。对于csv上传,我不想将文件保存在服务器上。我只想把它加载到临时目录,只要它需要获得csv数据,就可以了。
<?php
    if ( !empty($_POST['uploadFile']) ) {
        $name = $_FILES['update']['name'];
        echo $_FILES['update']['type'] . '<br />';
        echo $_FILES['update']['size'] . '<br />';
        $path = $_FILES['update']['tmp_name'];
        echo $_FILES['update']['error'] . '<br />';
        if(move_uploaded_file($_FILES['update']['tmp_name']),$name){
            $file_open = fopen($name, 'r');
            $data = fgetcsv( $file_open, 1000, ',');
            print_r($data);
        }else
           echo 'Unable to upload file';
    }
?>