PHP上传文件时出错

PHP上传文件时出错,php,file,upload,Php,File,Upload,好的,我为一个网站设置了一个上传引擎,这样一个经过身份验证的用户就可以在库中上传一首歌曲的音频文件(一个密钥),但是当我试图上传任何超过5MB的文件时,我遇到了这个奇怪的问题 顺便说一下,我将php.ini的最大文件大小设置为50MB 所有内容都正确上载,但另一端没有与文件关联的数据 HTML代码: <form action="keyUpload.php?id=<?php echo $id;?>" method="post" enctype="multipart/form-da

好的,我为一个网站设置了一个上传引擎,这样一个经过身份验证的用户就可以在库中上传一首歌曲的音频文件(一个密钥),但是当我试图上传任何超过5MB的文件时,我遇到了这个奇怪的问题

顺便说一下,我将php.ini的最大文件大小设置为50MB

所有内容都正确上载,但另一端没有与文件关联的数据

HTML代码:

<form action="keyUpload.php?id=<?php echo $id;?>" method="post" enctype="multipart/form-data">
<p style="color:#fff;font-size:30px;font-family:Times">
Add a new Key:<br/><input name="uploaded" type="file" id="file"><br />
<input type="text" name="kname" id="kname" value placeholder="Key Name (Ex. Demo, A#, etc.)" style="width:300px;"><br/>
<button class="button">Upload File</button><br/>
<span style="font-size:12px;">*Max Filesize is 50 MB*</span>
</p>
</form>

谢谢你的帮助

检查上传错误:

if ($_FILES['uploaded']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['uploaded']['error']);
}
此处定义了错误代码:

另外,不要使用文件名来验证上载。恶意用户伪造文件名并上传恶意文件(例如

ren nastyvirus.exe good_tune.mp3

不要对文件名使用字符串操作。有很多PHP函数用于文件名操作,例如检查上传错误:

if ($_FILES['uploaded']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['uploaded']['error']);
}
此处定义了错误代码:

另外,不要使用文件名来验证上载。恶意用户伪造文件名并上传恶意文件(例如

ren nastyvirus.exe good_tune.mp3

不要对文件名使用字符串操作。在PHP.ini中也有大量用于文件名操作的PHP函数,例如设置
max\u post\u size

在PHP.ini中设置
max\u post\u size

body,html,iframe{
宽度:100%;
身高:100%;
溢出:隐藏;
}
跨度{
字号:12px
}

添加新密钥:
*最大文件大小为50 MB*

keyUpload.php

body,html,iframe{
宽度:100%;
身高:100%;
溢出:隐藏;
}
跨度{
字号:12px
}

添加新密钥:
*最大文件大小为50 MB*

keyUpload.php


我从中得到的只是“上传失败,错误代码”而不是别的。而且,我知道所有人都会亲自使用它,所以没有必要担心恶意使用。;)有趣的是,我们至少应该输出一个数字。
var\u转储($\u文件)
显示什么?将其粘贴到上面的代码中,因为注释不适合放置格式化的dumpsvar dump刚刚返回了我在上面添加的内容。ok。所以根本没有文件上传。不知道,但这就是问题所在。如果上传失败,你至少会在$\u文件中得到一些数据。我找到了。结果是,当我在ini中更改最大文件大小时,我忽略了最大post大小,默认为5M!谢谢你的帮助+1我从中得到的只是“上传失败,错误代码为”,其他什么都没有。而且,我知道所有人都会亲自使用它,所以没有必要担心恶意使用。;)有趣的是,我们至少应该输出一个数字。
var\u转储($\u文件)
显示什么?将其粘贴到上面的代码中,因为注释不适合放置格式化的dumpsvar dump刚刚返回了我在上面添加的内容。ok。所以根本没有文件上传。不知道,但这就是问题所在。如果上传失败,你至少会在$\u文件中得到一些数据。我找到了。结果是,当我在ini中更改最大文件大小时,我忽略了最大post大小,默认为5M!谢谢你的帮助+1.