我想将文件上传添加到我当前的代码中。我的形式很好,不想改变它。我一直在搜索谷歌和youtube,找不到我可以添加到我当前代码的代码。当我得到的所有错误都是错误时,这是非常令人沮丧的。
#main {
text-align: center;
}
.circle {
background: #298EEA;
display: inline-block;
width: 80px;
height: 80px;
margin-top: 30px auto;
border-radius: 50%;
border: 15px solid #f3f5f6
}
.div {
padding: 80px 80px 60px 80px;
background: #282C39;
border-radius: 3px;
margin-top: -45px;
}
答案 0 :(得分:1)
您的代码根本不处理文件上传。关于如何处理在PHP中保存文件上载有很多资源。也许如果您更新了代码以尝试处理文件上传,然后说出了什么类型的错误,那么有人可以帮助您。根据各种各样的事情你可能会得到任何数量的错误。
您是否对要将文件保存到的目录具有读/写权限?
你知道php.ini“upload_max_filesize”设置,你的文件是否小于最大上传?
这是一个有用的网站,解释了基础知识:https://davidwalsh.name/basic-file-uploading-php
答案 1 :(得分:0)
你已经完成了前端,
<form action = "material.php">
<input type="file" name="file" enctype="multipart/form-data">
您提交的文件名将自动从$ _FILES [&#39; file&#39;] [&#39; tmp_name&#39;]数组中获取,因为输入字段的名称为&#34;文件&#34;和 tmp_name 是PHP自己添加的默认密钥。
因此,在您的后端,添加以下内容以捕获文件上载。
move_uploaded_file 就是诀窍!
<?php
$upload_dir = "/var/www/misyte.com/uploads/";
$filename = "uploaded_file.txt"; // Rename it to whatever file format..
$destination = $upload_dir . "/" . $filename;
if (move_uploaded_file($_FILES['file']['tmp_name'], $destination))
{
// If this here succeeds, the file has been moved to destination folder
}
?>
作为奖励,我已经加入了我写过的功能,可以帮助您拆分在分机上收到的文件名&#34;。&#34;指出并将您上传的文件重命名为您心中的愿望:
<?php
function ExplodeFileAtExtention($Filename)
{
$len = strlen($Filename);
for ($i = 0; $i < $len; $i++)
{
$curidx = $len-($i+1);
if ($Filename[$curidx] == '.')
{
return array(substr($Filename, 0, $curidx), substr($Filename, $curidx + 1));
}
}
}
?>
它存在的唯一原因是,有时文件名包含多于1个点字符,如&#34; some.file.name.txt&#34;,如果您只是将它拆分为第一个点字符,它仍然无法退回扩展程序。
所以,例如:
$split = ExplodeFileAtExtention("some.file.name.txt");
$filename = $split[0]; // "some.file.name"
$ext = $split[1]; // "txt"
这样,您可以重建(重命名)上传的文件并保留扩展名,例如:
$filename= time() . "." . $ext; // "1471979296.txt"
如果将其插入第一个代码片段,脚本将上传文件并将其存储在:
/var/www/misyte.com/uploads/1471979296.txt
这很好,因为你可能想要所有上传文件的某种模式,而不是将它们存储为
"This Awesome Window95~ filename___I__got__from my Program Files folder!!!.txt"