我知道在 PHP 中完成这不是一件困难的事情,但它给了我最难的时间!

我想这样做:

  1. 以单一形式捕获表单字符串数据和图像上载

  2. 使用单个 non-ajax/traditional POST 将两种类型的数据上载到服务器到一个简单的 PHP 脚本(在这种情况下为 process.php)

  3. 获取用户上传的图像,将其作为文本文件保存在由第一个名字的第一个字母动态命名的目录中,并将整个姓氏连接在一起,所以对我来说目录结构如下:/home/uploads/nabrams/image.jpg,/home/uploads/nabrams/userdata.txt,

*文本文件将包含来自客户端表单的文本字符串,来自输入[1]的图像,再次包含在同一表单中,通过 1 次提交发送到服务器。

我正在使用文本文件,以提供最简单的案例。

这是我目前正在使用的代码:

<?php
$uploaddir = '/home/nicholasabrams/public_html' + '/newprofiledata/' + $lname + '/' + $_FILES['userfile']['name'];
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<p>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  echo "File is valid, and was successfully uploaded.\n";
} else {
   echo "Upload failed";
}

echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_POST);
print_r($_FILES);
print "</pre>";

但是,当尝试上传多种格式和大小的图像(多次尝试)时,我被困在 error-less 空白窗口。毫不奇怪,脚本没有根据需要上传或重命名图像。

此外 - 当尝试将帖子数据直接添加到文件名中时,如下所示:

$uploaddir = '/home/nicholasabrams/public_html/' + $_POST['lname'] + '/' + $_FILES['userfile']['name']; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))...

我用 0pictureNameHere.jpg 而不是 NAbrams.jpg 获取文件名,或者如果使用 post 数据来设置目录,我将永远不会以这种方式获取图像或数据。

边注:

我是一个 Javascript 和 jQuery(< - 主要)开发人员,尝试使用 express 或其他节点模块进行此操作是否值得?我对节点没有经验,尽管过去几个月我一直在“使用它”。

谢谢您的帮助!