使用此表格:
<form id="form1" name="form1" method="post" action="insertartrabajo.php" enctype="multipart/form-data">
<legend>formato vertical</legend>
<br />
<label for="cserv">Servicio:</label>
<select name="cserv">
<option value="NULL">Seleccione un servicio</option>
<?php
$sql="SELECT * FROM servicios GROUP BY servicios.nombre";
$resultado=mysql_query($sql);
while($fila=mysql_fetch_array($resultado)){
?>
<option value="<?php echo $fila["nombre"]; ?>"><?php echo $fila["nombre"]; ?></option>
<?php } ?>
</select>
<br>
<label for="cdirv">Direccion:</label>
<input name="cdirv" type="text">
<br>
<label for="cfoto">Foto:</label>
<input type="file" name="cfoto">
<br>
<label for="cobserv">Observaciones:</label>
<textarea name="cobserv" cols="10" rows="3"></textarea>
<br>
<input type="submit" name="Insertarv" value="Insertar"/>
</form>
和这个PHP代码:
<?php session_start();
include("includes/conexiones.php");
$sql = "SELECT * FROM trabajos ORDER BY id DESC LIMIT 1" ;
$resultado = mysql_query($sql);
$fila = mysql_fetch_array($resultado);
$lastid = $fila["id"];
$apendice = $lastid + 1;
if ($_POST["cserv"] != "") {
$servicio=$_POST["cserv"];}
if ($_POST["cdirv"] != "") {
$direccion=$_POST["cdirv"];}
if ($_POST["cobserv"] != "") {
$observaciones=$_POST["cobserv"];}
if ($_POST["cfoto"]!=""){
$foto=$_FILES["cfoto"]["name"];
ini_set('post_max_size','100M');
ini_set('upload_max_filesize','100M');
ini_set('max_execution_time','1000');
ini_set('max_input_time','1000');
$fototmp=$_FILES["cfoto"]["tmp_name"];
list($ancho, $alto) = getimagesize($fototmp);
$nuevoancho = 600;
$nuevoalto = 600 * $alto / $ancho;
$nuevaimg = imagecreatetruecolor($nuevoancho, $nuevoalto);
$idnuevaimg = imagecreatefromjpeg($fototmp);
imagecopyresized($nuevaimg, $idnuevaimg, 0, 0, 0, 0, $nuevoancho, $nuevoalto, $ancho, $alto);
imagejpeg ($nuevaimg,"imagenes/grandes/".$prefijo.$foto);
$fototmp = $_FILES["cfoto"]["tmp_name"];
list($ancho, $alto) = getimagesize($fototmp);
$nuevoancho = 144;
$nuevoalto = 144 * $alto / $ancho;
$nuevaimg = imagecreatetruecolor($nuevoancho, $nuevoalto);
$idnuevaimg = imagecreatefromjpeg($fototmp);
imagecopyresized($nuevaimg,$idnuevaimg,0,0,0,0,$nuevoancho,$nuevoalto,$ancho,$alto);
imagejpeg ($nuevaimg,"imagenes/peques/".$prefijo.$foto);}
$nombrefoto=$apendice.$foto;
$sql="INSERT INTO trabajos (servicio, direccion, observaciones, foto) VALUES ('$servicio', '$direccion', '$observaciones', '$nombrefoto')";
mysql_query($sql);
$idtrabajo=mysql_insert_id();
header("location:insertartrabajo2.php?vid=$idtrabajo");
?>
我的问题是$foto
变量。所有代码都运行,我的计算机没有给我任何错误,但$foto
为空,而在数据库“name”列中只显示$prefijo
变量。
有什么问题?
答案 0 :(得分:1)
if ($_POST["cfoto"]!=""){ $foto=$_FILES["cfoto"]["name"];
您假设,当您提交名称为"cfoto"
的文件时,它会显示在$_FILES
和$_POST
中,但它不会显示。< /强>
公平地说,文档没有说明这一点,但它在$_POST
中的价值是什么? $_FILES
的存在恰恰是因为这些表单字段需要特殊处理。
请检查isset($_FILES["cfoto"])
。