作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将一个文件上传到本地主机服务器,但它不起作用。我正在尝试使用 chmod 为文件所在的文件夹授予权限,但我不明白。表单在一个名为 index.php 的文件中动态打印,当单击提交时,数据将被接收到同一个名为 recExpediente.php 的 php 文件中。
PHP
<?
ini_set('error_reporting', E_ALL);
require('conectaDemo.php');
if (is_uploaded_file($_FILES['Foto']['tmp_name'])) {
$cSQL="SELECT NIF FROM CLIENTES WHERE ID_CLIENTE=?";
$stmt=$oConni->prepare($cSQL) or die($oConni->error);
$stmt->bind_param('i',$_POST['selDesc2']);
$stmt->execute();
$stmt->bind_result($DNI);
if ($stmt->fetch()) {
chmod('/var/www/pracRemesas/'.$DNI.'/', 0777);
echo '/var/www/pracRemesas/'.$DNI.'/';
$uploaddir='/var/www/pracRemesas/'.$DNI.'/';
}
$stmt->close();
$uploadfile = $uploaddir . basename($_FILES['Foto']['name']);
move_uploaded_file($_FILES['Foto']['tmp_name'], $uploadfile);
$cFoto=basename($_FILES['Foto']['name']);
$xSQL = "INSERT INTO EXPEDIENTES (ID_CLIENTE, DOCUMENTO,
OBSERVACIONES) VALUES(?,?,?)";
$stmt = $oConni->prepare($xSQL);
$stmt->bind_param('iss', $_POST['selDesc2'], $cFoto, $_POST['observ']);
$stmt->execute();
$stmt->close();
}
if (isset($_POST['newid'])) {
$cSQL="SELECT ID_CLIENTE, NOMBRE FROM CLIENTES";
$stmt=$oConni->prepare($cSQL) or die($oConni->error);
$stmt->execute();
$stmt->bind_result($ID_CLIENTE, $NOMBRE);
echo'<form name="nuevoExp" id="frmLogin" action="recExpediente.php" method="POST" enctype="multipart/form-data">';
echo'<select id="selDesc2" name="selDesc2">';
echo'<option value=-1>Seleccione cliente</option>';
while ($stmt->fetch()) {
echo'<option value="'.$ID_CLIENTE.'">'.$NOMBRE.'</option>';
}
$stmt->close();
echo'</select><br>';
echo'<input type="file" name="Foto" id="Foto"><br>';
echo'Observaciones<input type="text" name="observ" id="observ"><br>';
echo'<input type="submit" name="butEnv" id="butEnv" value="Enviar"/>';
echo'</form>';
}?>
最佳答案
您的问题是可变范围。您在 if 语句中定义 $uploaddir
,它只在该语句中存在。你需要先定义它,你可以在if语句中修改它。
这导致您的代码实际上是
$uploadfile = basename($_FILES['Foto']['name']);
我建议对您的代码和故障保险进行更多检查。您可以在 if ($stmt->fetch()) {
中包含上传代码和插入代码。如果您移动 if
语句中的所有内容,则无需为 $uploaddir
问题更改任何内容。
关于php - 我正在尝试将一个文件上传到本地主机,但无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14859941/
我是一名优秀的程序员,十分优秀!