if(isset($_FILES)) 在 PHP 中不起作用
Posted
技术标签:
【中文标题】if(isset($_FILES)) 在 PHP 中不起作用【英文标题】:if(isset($_FILES)) Not working in PHP 【发布时间】:2018-10-04 11:27:33 【问题描述】:我无法使用 $_FILES 从 html 表单获取输入类型文件值,使用 isset($_FILES['NAME']) 从表单获取上传的图像值,我放了一个 echo 'string'在 isset 条件的第一行,它没有显示它
<form role="form" id="contact_form" class="contact-form" method="post" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<ul class="row">
<li class="col-sm-12">
<label>
<input type="text" class="form-control" name="newpseudo" id="name" placeholder="php">
</label>
</li>
<li class="col-sm-12">
<label>
<input type="email" class="form-control" name="newmail" id="email" placeholder="*EMAIL">
</label>
</li>
<li class="col-sm-12">
<label>
<input type="password" class="form-control" name="newmdp1" id="company" placeholder="*MOT DE PASSE">
</label>
</li>
<li class="col-sm-12">
<label>
<input type="password" class="form-control" name="newmdp2" id="company" placeholder="*CONFIRMER VOTRE MOT DE PASSE">
</label>
</li>
<li class="col-sm-12">
<label>Ajouter Photo de profil</label>
<input type="file" name="avatar" >
</li>
</ul>
</div>
<div class="col-md-12">
<ul class="row">
<li class="col-sm-12 no-margin">
<button type="submit" value="submit" class="btn" id="btn_submit" onClick="proceed();" name="modifier">Mettre a jour</button>
</li>
</ul>
</div>
</div>
</form>
我试图获取文件输入值的 PHP 代码:
if (isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))
echo "string";
$taillemax = 2097152;
$extensionsvalides = array('jpg','jpeg','gif','png');
if ($_FILES['avatar']['size'] <= $taillemax)
$extensionsUpload = strtolower(substr(strrchr($_FILES['avatar']['name'],'.'),1));
if (in_array($extensionsUpload, $extensionsvalides))
$chemin ="membres/avatars/".$_SESSION['id'].".".$extensionsUpload;
$resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
if ($resultat)
$updateavatar = $bdd->prepare('UPDATE memebre SET avatar = :avatar WHERE id = :id');
$updateavatar->execute(array('avatar'=>$_SESSION['id'].".".$extensionsUpload,'id' => $_SESSION['id']));
header("Location: userProfile.php?id=".$_SESSION['id']);
else
$msg = "Erreur de l'importation de votre photo de profil";
else
$msg = "votre photo de profil doit etre de format jpg , jpeg ou png";
【问题讨论】:
你的名声很差,过去有人帮助过你,甚至没有标记为答案 PHP 代码是否与表单在同一页面(在同一文件中)?如果没有,您在 html 表单上缺少action
属性。
@Brainfeeder php 代码在同一页面中,它是一个 .php 页面
@D.'s 我会尽快回复他们
js函数proceed();
是做什么的?您是否在通过 ajax 或其他方式发布之前从字段中收集数据?那么问题可能在于您没有在此处发布的js代码......
【参考方案1】:
为表单添加动作并将数据发送到文件执行phpcode并保存文件 这意味着你应该改变这一行:
<form role="form" id="contact_form" class="contact-form" method="post"
enctype="multipart/form-data">
到:
<form role="form" id="contact_form" class="contact-form" method="post"
enctype="multipart/form-data" action="example.php">
【讨论】:
以上是关于if(isset($_FILES)) 在 PHP 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章