上传html/php文件

上传html/php文件,php,html,forms,file-upload,Php,Html,Forms,File Upload,我目前正在尝试通过简单的html和php将csv文件上传到数据库。我的问题是我想知道事情是如何运作的/实际发生了什么(我想这就是为什么我有这么多问题的原因) 因此,无论如何,我的HTML如下所示: <html> <form action="mysite.php" method="POST"> <input type="file" name="file"><br /> <input type="submit" value="Now upload

我目前正在尝试通过简单的html和php将csv文件上传到数据库。我的问题是我想知道事情是如何运作的/实际发生了什么(我想这就是为什么我有这么多问题的原因)

因此,无论如何,我的HTML如下所示:

<html>
<form action="mysite.php" method="POST">
<input type="file" name="file"><br />
<input type="submit" value="Now upload it!">
</form>
</html>


我的PHP只是:

<?php
echo 'Success';
?>

在我将文件存储到我喜欢的数据库之前,文件实际存储在哪里

它是否在服务器上创建为临时文件? 是否保存在服务器ram上? 它实际上没有做任何事情,因为它没有被要求做任何事情(aka:save to DB)


谢谢

当您上传文件时,它存储在服务器上,之后如果您想将此CSV导入数据库,您必须使用php脚本解析()并插入数据库。或者,如果只想存储文件路径,而不是CSV中的数据,则必须在数据库中只存储文件路径。

只要脚本正在运行,文件就会临时存储。这些信息可以在$\u文件中找到。

我强烈建议阅读

基本上,该文件是通过HTTP上传的,php将其存储在服务器上的临时文件中


您可以使用全局
$\u FILES
数组获取该临时文件的句柄。

是的,它将位于服务器上的临时文件中,但在您的情况下不会,因为您缺少编码类型:

<form enctype="multipart/form-data" action="__URL__" method="POST">

这是关于文件上传的手册

您可以通过对变量名执行var_dump($\u POST)和对文件数据执行var_dump($\u文件)来查看上载的内容,以帮助理解


正如您在参考中看到的,一旦上传文件,您需要将其从临时位置移动到最终目的地。

该文件应存储到服务器上的临时文件中,您可以使用
$\u FILES
superglobal查找有关该文件的信息。您可以首先更改脚本以转储superglobal以查看其中的内容:

<?php 
print_r($_FILES); 
?> 
您可以使用
移动上传的文件()
功能将文件粘贴到更方便的地方:

if (move_uploaded_file($_FILES['attachment']['tmp_name'], '/more/useful/path') {
    // all good
}
最后,您应该记住,不仅仅是文件本身,还有报告的文件名和文件大小都是用户提交的数据,并确保在使用前对这些数据进行适当的清理


这里有一大堆方便的东西:

好吧,到目前为止,它实际上什么都不做(字面上),从上传文件时缺少的“多部分/表单数据”表单编码开始。你应该研究一下程序,从这里开始:现在甚至没有上传文件。您需要正确的类型<代码>。在你整理好之后,我建议你做一个
print\r($\u文件)在接收脚本中查看信息的发布方式。使用
打印($\u文件)
在您的mysite.php文件中,我认为您可以继续。了解您是否正在尝试将此CSV文件导入数据库以用作数据库表,或者您只是想存储文件本身,这将很有帮助。现在我只想存储文件本身。稍后我将把它存储到数据库中。谢谢你的回复。在我有时间查看你们发布的所有链接后,我会选择我认为最好的链接。再次感谢你,一见钟情。由于缺少编码类型,它甚至不是临时文件。谢谢
if (move_uploaded_file($_FILES['attachment']['tmp_name'], '/more/useful/path') {
    // all good
}