我做了一个非常简单的网页。它需要一个文件,并将其上传到/ home / public_html / php / uploads中的我的网页。
我还希望获得一些简单的数据,姓氏,名字,电子邮件,消息。
我已经可以做这两个事情。我看不到如何将它们以一种形式组合。
这是我从here获得的,它会上传文件。如何修改它以获取数据?
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (is_uploaded_file($_FILES['my_upload']['tmp_name']))
{
//First, Validate the file name
if(empty($_FILES['my_upload']['name']))
{
echo " File name is empty! ";
exit;
}
$upload_file_name = $_FILES['my_upload']['name'];
//Too long file name?
if (strlen($upload_file_name)>100)
{
echo " too long file name ";
exit;
}
//replace any non-alpha-numeric cracters in th file name
$upload_file_name = preg_replace("/[^A-Za-z0-9 \.\-_]/", '', $upload_file_name);
//set a limit to the file upload size
if ($_FILES['my_upload']['size'] > 1000000)
{
echo " too big file ";
exit;
}
//Save the file
$dest=__DIR__.'/uploads/'.$upload_file_name;
if (move_uploaded_file($_FILES['my_upload']['tmp_name'], $dest))
{
echo 'File Has Been Uploaded !';
}
}
}
?>
上面的代码有效,它可以上传文件。
这就是我将普通数据发送到电子邮件的方式。
<?php
$q1 = $_POST['surname'];
$q2 = $_POST['name'];
$q3 = $_POST['email'];
$q4 = $_POST['message'];
for ($i=1; $i <= 4; $i++) {
if (${"q$i"} == '') ${"q$i"} = 'X';
}
$body = "
".$q1."
".$q2."
".$q3."
".$q4."
";
$to1 = "myemail@foxmail.com";
$subject = $q2 . $q1 . "query";
$headers = "From: peter@sendamail.com\r\n";
$headers .= 'Content-Type: text/plain; charset=utf-8';
mail($to1, $subject, $body, $headers);
header("Location: email_success.php");
?>
如何保存$ q1至$ q4并写入/ home / public_html / php / uploads中的文本文件?
最好,该文本文件的名称应与上载文件+“数据”的名称相同
编辑:这是一个简单的表格。此表单成功上传了我选择的任何文件。 (到目前为止,我只尝试了小的文本文件。)我还可以使用Python获取文件,然后在笔记本电脑上打开它。没问题。
我的问题是:表单数据在哪里?它不在服务器上的文件夹中。另外,服务器上的php文件夹错误日志中没有错误。
<html lang="en">
<head>
<Title>File Upload Tutorial</Title>
</head>
<body>
<form method="POST" name="uploadFileandData" action="php/upload1file.php" enctype="multipart/form-data">
<label for='surname'>Surname: </label> <input type="text" name="surname" > <br><br>
<label for='name'>Name: </label> <input type="text" name="name" > <br><br>
<label for='email'>Email: </label> <input type="text" name="email" > <br><br>
<label for='message'>Message:</label> <textarea name="message"></textarea><br><br>
<label for="my_upload">Select the file to upload:</label> <input id="my_upload" name="my_upload" type="file"><br><br>
<input type="submit" value="Submit" name='submit'><br>
</form>
</body>
</html>
我每周都会收到200多封来自学生的电子邮件。它们都包含来自表单,作业的数据。这非常好用。
现在我想以这种方式收集书面作业,但是我也需要数据。
如何获取?
答案 0 :(得分:0)
在您发布的教程中,您将对此进行更改:
<form target="uploadfiles.php" method="post" enctype="multipart/form-data">
<!--Content will go inside here.-->
<input name="file1" type="file">
<input type="submit" value="Upload Now">
</form>
看起来像这样:
<form target="uploadfiles.php" method="post" enctype="multipart/form-data">
First Name: <input name="name" type="text" placeholder="Name" />
<br />
Last Name : <input name="surname" type="text" placeholder="Surname"/>
<br />
Email Addr: <input name="email" type="text" placeholder="email"/>
<br />
Message: <textarea name="message" placeholder="Type your message here"></textarea>
<br />
<br />
<input name="file1" type="file">
<input type="submit" value="Upload Now">
</form>