在发送包含多个附件的电子邮件之前,尝试将附加到邮件表单的文件上传到服务器上的临时目录。
HTML
<div class="file-upload-wrapper">
<label class="file-field" data-max-files="6">
<input type="file" name="photos" multiple>
<span>Drag your files here or click to select your files <span>.jpg, .png and .pdf</span></span>
</label>
<div class="uploaded-files"></div>
</div>
目录路径
$path_to_holding_directory = "/var/www/vhosts/mysite/test.mysite.com/bin/";
bin文件夹具有“777”权限
PHP脚本
function rearrange( $arr ){
foreach( $arr as $key => $all ){
foreach( $all as $i => $val ){
$new[$i][$key] = $val;
}
}
return $new;
}
if(isset($_FILES['photos']))
{
$_photos = rearrange($_FILES['photos']);
foreach($_photos as $file)
{
$path_of_uploaded_file = $path_to_holding_directory . $file['name'];
$tmp_path = $file["tmp_name"];
if(is_uploaded_file($tmp_path))
{
if(!copy($tmp_path,$path_of_uploaded_file))
{
$errors .= '\n error while copying the uploaded file';
}
}
print_r($file);
$message .= $file['name'];
}
}
我得到以下数组:
Array
(
[name] => gr-1.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpc7s2Ug
[error] => 0
[size] => 41253
)
Array
(
[name] => gr-2.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php6qLSeb
[error] => 0
[size] => 51475
)
我试图用多个文件来做这件事,但到目前为止还没有成功。我想在这里找到的解决方案enter link description here
答案 0 :(得分:0)
您的输入字段未标记为数组:
<input type="file" name="photos" multiple>
这样即使您可以使用文件选择器选择它,也无法保存多个文件值。只需将字段命名为photos[]
即可。发布后你会得到一个像这样的数组:
Array
(
[photos] => Array
(
[name] => Array
(
[0] => image1.jpg
[1] => image2.gif
)
// ... more values
)
)
但是,我发现你也在使用掉落目标。我不知道它是什么插件,但如果你仍然面临问题,我认为你应该参考插件的创建者。如果它不是插件而是您自己创建的,请使用代码创建一个单独的问题以获得帮助。