그래서 일부 필드 및 데이터베이스에 이미지를 업로드하려면이 양식, 가지고 :정의되지 않은 인덱스 업로드 이미지
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" >
<fieldset>
<p><label>Nome:</label><input name="nome" type="text" class="text-long" /></p>
<p><label>Género:</label><input name="genero" type="text" class="text-long" /></p>
<p><label>Ano de Lançamento:</label><input name="ano" type="text" class="text-long" /></p>
<p><label>Banda:</label><input name="banda" type="text" class="text-long" /></p>
<p><label>Preço:</label><input name="preco" type="text" class="text-long" /></p>
<p><label>Imagem:</label><input name="arquivo" type="file" value="" /></p>
<input type="submit" name="enviar" value="Inserir Album" >
</fieldset>
그리고 다음 필드 셋 후 나는 이미지를 업로드하고 필드를 확인하는 PHP 코드가를 :
주의 사항 :
<?php
include('ligacao.php');
include("resize-class.php");
if(isset($_POST['enviar']))
{ //START IF
$nomealbum = $_POST['nome'];
$genero = $_POST['genero'];
$ano = $_POST['ano'];
$banda = $_POST['banda'];
$preco = $_POST['preco'];
//o nome original do arquivo no computador do utilizador
$arqName = $_FILES['arquivo']['name'];
//o tipo mime do arquivo
$arqType = $_FILES['arquivo']['type'];
//o tamanho do arquivo
$arqSize = $_FILES['arquivo']['size'];
//o nome temporario do arquivo com que foi guardado no servidor
$arqTemp = $_FILES['arquivo']['tmp_name'];
//o codigo de erro associado a este upload de arquivo
$arqError = $_FILES['arquivo']['error'];
//lista de tipos de arquivos permidos
$tiposPermitidos = array('image/gif', 'image/jpeg', 'image/jpg', 'image/png');
//tamanho maximo
$tamanhoPermitido = 6024 * 3000;
if (empty($nomealbum) {
$noname = '<span class="error">Insira um nome para album!</span></br>';
echo $noname;
}
if (empty($genero)) {
$nogenero = '<span class="error">Insira um genero para o album!</span></br>';
echo $nogenero;
}
if (empty($ano)) {
$noano = '<span class="error">Insira uma ano para o album!</span></br>';
echo $noano;
}
if (empty($banda)) {
$nobanda = '<span class="error">Insira uma banda para o album!</span></br>';
echo $nobanda;
}
if (empty($preco)) {
$preco = '<span class="error">Insira uma banda para o album!</span></br>';
echo $nopreco;
}
if (empty($arqName)) {
$noarqName = '<span class="error">Insira uma imagem!</span></br>';
echo $noarqName;
}
if ($arqError == 0 && !empty($nomealbum) && !empty($genero) && !empty($ano) && !empty($banda)&& !empty($preco))
{
//verifica o tipo de arquivo enviado
if(array_search($arqType, $tiposPermitidos) === false)
{
$arqinvalido = '<span class="error">O tipo de arquivo enviado é inválido!</span>';
echo $arqinvalido;
}
//verifica o tamanho do arquivo enviado
else if ($arqSize > $tamanhoPermitido)
{
$arqgrande = '<span class="error">O tamanho do arquivo enviado é maior que o limite!</span>';
echo $arqgrande;
}
else
{
$pasta = 'imagens_albuns/';
//pega a extensao do arquivo enviado
$extensaoTemp = explode('.',$arqName);
$extensao = strtolower(end($extensaoTemp));
//define o nome do arquivo usando um Unix TimesTamp
$nome = time(). '.' . $extensao;
$upload = move_uploaded_file($arqTemp, $pasta . $nome);
if ($upload === true)
{
$ficheiro = $pasta.$nome;
$resizeObj = new resize($ficheiro);
$resizeObj -> resizeImage(800, 600, 'auto');
$resizeObj -> saveImage("imagens_albuns/$nome", 100);
$resizethumb = new resize($ficheiro);
$resizethumb -> resizeImage(150, 150, 'crop');
$resizethumb -> saveImage("imagens_albuns/thumbnails/$nome", 100);
$query = mysql_query("INSERT INTO albuns (nome, genero, ano, banda, preco, arquivo) VALUES ('$nomealbum','$genero','$ano','$banda','$preco','$nome')") or die (mysql_error());
//se a query existe entao a pagina é redireccionada
if($query === true)
{
$sucesso = '<span class="yes">Album inserido com sucesso!</span>';
echo $sucesso;
}
}
else
{
$retorno = '<span class="error">Nao foi possivel fazer o upload da imagem!</span>';
echo $retorno;
}
}
}
}
?>
마다 내가 파일을 업로드하려고하기 때문에 나는이 작업을 위선적 인 말투, 난이 오류가 정의되지 않은 인덱스 : /home/claire/public_html/inseriralbum.php에에 arquivo 라인 45 Notice : Undefined index : /home/claire/public_html/inseriralbum.php in line 49 알림 : 정의되지 않은 색인 : /home/claire/public_html/inseriralbum.php 온라인 53 알림 : 정의되지 않은 색인 : arquivo in/home/claire/public_html/inseriralbum.php on line 57 알림 : 정의되지 않은 색인 : /home/claire/public_html/inseriralbum.php 온라인에 저장 61 Inspector imagem! 다른 사람들과 대화를 나눠보세요!
파일에있는 이름이 양식에 입력되어 있으면 "arquivo"가 정의되지 않았습니까?
Here is line 45 to 61
$arqName = $_FILES['arquivo']['name'];
//o tipo mime do arquivo
$arqType = $_FILES['arquivo']['type'];
//o tamanho do arquivo
$arqSize = $_FILES['arquivo']['size'];
//o nome temporario do arquivo com que foi guardado no servidor
$arqTemp = $_FILES['arquivo']['tmp_name'];
//o codigo de erro associado a este upload de arquivo
$arqError = $_FILES['arquivo']['error'];
경고 : move_uploaded_file (imagens_albuns/1418692561.jpg) : 스트림을 열지 못했습니다 : 169 행의 /home/claire/public_html/inseriralbum.php에서 권한이 거부되었습니다. 경고 : move_uploaded_file() : /home/claire/public_html/inseriralbum.php의 '/ tmp/phpaNaqMB'을 'imagens_albuns/1418692561.jpg'로 옮길 수 없습니다. 온라인으로 169 업로드가 가능합니다. – user2535046
@ user2535046 기본적으로 이미 말하고 있습니다. 파일을 이동할 수있는 권한이 필요합니다. 터미널을 사용하고 목적지 폴더를 설정하고 그것에'chmod 775'를 사용할 수 있습니다. – Ghost
OP에도 closing form 태그가 누락 된 것 같습니다. 또한 "imagens_albuns"의 오타가 될 수 있습니다. OP의 언어 인 "album"이 "albun"이라면 괜찮을 것이라고 말하고 싶지만, OP의 폴더 이름이 "imagens_albums"로되어있을 수도 있습니다.이 요소는 존재하지 않기 때문에 오류 메시지의 추가 요소이자 이유가 될 수 있습니다. –