Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou com um problema aqui e não consigo achar a solução de jeito nenhum
o $_FILES['file'] não está recebendo o arquivo
index.php
<?php
error_reporting(E_ALL & ~ E_NOTICE);
include("config/config.php");
header("Content-Type: text/html; charset=ISO-8859-1",true);
?>
<form id="form" name="form" action="add_analise.php" enctype="multipart/form-data" method="POST">
<b>Importe o arquivo .CSV : </b><input name="file" id="file" type="file" /><br>
<hr>
<input type="submit" value="Ver Analise" />
</form>
add_analise.php
<?php
include("config/config.php");
header("Content-Type: text/html; charset=ISO-8859-1",true);
//Define o lugar que será salvo o arquivo com um nome aleatório
$arquivo = 'csv/' . uniqid(rand(), true) . '.csv';
if (empty($_FILES['file'])) {
echo 'A requisição não veio por POST';
exit;
} elseif ($_FILES['file']['error'] !== UPLOAD_ERR_OK) {
echo 'Erro ao fazer o upload', $_FILES['file']['error'];
exit;
} elseif (!move_uploaded_file($_FILES['file']['tmp_name'], $arquivo)) {
echo 'Erro ao mover para a pasta';
exit;
}
$handle = fopen ($arquivo, 'rb');
//Verifica se o arquivo pode ser lido
if (!$handle) {
echo 'Falha ao ler o arquivo';
exit;
}
// Lê o conteúdo do arquivo
while(!feof($handle)){
// Pega os dados da linha
$linha = fgets($handle, 1024);
// Divide as Informações das celular para poder salvar
$dados = explode(';', $linha);
echo $dados[0]."<br>";
// Verifica se o Dados Não é o cabeçalho ou não esta em branco
if($dados[0] != 'Date' && !empty($linha)){
//mysql_query('INSERT INTO emails (nome, email) VALUES ("'.$dados[0].'", "'.$dados[1].'")');
}
}
// Fecha arquivo aberto
fclose($handle);
//Deleta o arquivo após usá-lo
unlink($arquivo);
?>
aqui aparece a mensagem "A requisição não veio por POST"
o arquivo que estou tentando enviar é um .CSV com apenas 4 kb,
la no php.ini, parece estar tudo certo,
Estou usando o Windows 10 com programa WAMP, e estou no localhost
a pasta "csv" e os arquivos "index.php" e "add_analise.php" estão na mesma pasta, dentro do localhost, já tentei varios testes, e não estou entendendo porque o $_File não recebe o arquivo .csvnão funcionou, deu a mesma mensagem
as alterações foram essas, certo?
<input name="arquivo" id="arquivo" type="file" />
if (!isset($_FILES['arquivo'])) {
echo 'A requisição não veio por POST';
exit;
} elseif ($_FILES['arquivo']['error'] !== UPLOAD_ERR_OK) {
echo 'Erro ao fazer o upload', $_FILES['arquivo']['error'];
exit;
} elseif (!move_uploaded_file($_FILES['arquivo']['tmp_name'], $pasta)) {
echo 'Erro ao mover para a pasta';
exit;
}fiz alguns testes aqui, mas o erro continua, não entendo porque
<?php
//Define o lugar que será salvo o arquivo com um nome aleatório
$arquivo = 'csv/' . uniqid(rand(), true) . '.csv';
if (!isset($_FILES['file'])) {
echo 'A requisição parece não ter vindo por POST<br>', PHP_EOL;
echo 'Depurando:<br>', PHP_EOL;
echo '<pre>';
echo '$_SERVER', PHP_EOL;
print_r($_SERVER);
echo '$_POST', PHP_EOL;
print_r($_POST);
echo '$_FILES', PHP_EOL;
print_r($_FILES);
echo '</pre>';
exit;
} elseif ($_FILES['file']['error'] !== UPLOAD_ERR_OK) {
echo 'Erro ao fazer o upload:', $_FILES['file']['error'];
exit;
} elseif (!move_uploaded_file($_FILES['file']['tmp_name'], $arquivo)) {
echo 'Erro ao mover para a pasta';
exit;
}
$handle = fopen($arquivo, 'rb');
//Verifica se o arquivo pode ser lido
if (!$handle) {
echo 'Falha ao ler o arquivo';
exit;
}
// Lê o conteúdo do arquivo
while(!feof($handle)){
// Pega os dados da linha
$linha = fgets($handle, 1024);
// Divide as Informações das celular para poder salvar
$dados = explode(';', $linha);
echo $dados[0]."<br>";
// Verifica se o Dados Não é o cabeçalho ou não esta em branco
if($dados[0] != 'Date' && !empty($linha)){
//mysql_query('INSERT INTO emails (nome, email) VALUES ("'.$dados[0].'", "'.$dados[1].'")');
}
}
// Fecha arquivo aberto
fclose($handle);
//Deleta o arquivo após usá-lo
unlink($arquivo);
o ERRO que aparece é assim
A requisi��o parece n�o ter vindo por POST
Depurando:
$_SERVER
Array
(
[HTTP_HOST] => localhost
[HTTP_CONNECTION] => keep-alive
[CONTENT_LENGTH] => 3358
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ORIGIN] => http://localhost
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36
[CONTENT_TYPE] => multipart/form-data; boundary=----WebKitFormBoundary3BAHZIu22BQXsXbp
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
[HTTP_REFERER] => http://localhost/galgos/
[HTTP_ACCEPT_ENCODING] => gzip, deflate, br
[HTTP_ACCEPT_LANGUAGE] => pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
[HTTP_COOKIE] => cookieStorage=%7B%22version%22%3A2%2C%22odds%22%3A%22fractional%22%2C%22sortBy%22%3A%22number%22%2C%22cardTab%22%3A%22card%22%2C%22cardsListBy%22%3A%22meetings%22%2C%22showUserBalance%22%3Atrue%2C%22userId%22%3A745536927876%7D; _ga=GA1.1.1741532905.1493168313; __utma=111872281.1741532905.1493168313.1493768513.1493864870.4; __utmz=111872281.1493168313.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
[PATH] => C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Skype\Phone\;C:\Windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps
[SystemRoot] => C:\Windows
[COMSPEC] => C:\Windows\system32\cmd.exe
[PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
[WINDIR] => C:\Windows
[SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache/2.4.23 (Win64) PHP/5.6.25
[SERVER_NAME] => localhost
[SERVER_ADDR] => ::1
[SERVER_PORT] => 80
[REMOTE_ADDR] => ::1
[DOCUMENT_ROOT] => D:/wamp64/www
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => D:/wamp64/www
[SERVER_ADMIN] => wampserver@wampserver.invalid
[SCRIPT_FILENAME] => D:/wamp64/www/teste/add_analise.php
[REMOTE_PORT] => 54949
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /teste/add_analise.php
[SCRIPT_NAME] => /teste/add_analise.php
[PHP_SELF] => /galgos/add_analise.php
[REQUEST_TIME_FLOAT] => 1494269806.682
[REQUEST_TIME] => 1494269806
)
$_POST
Array
(
)
$_FILES
Array
(
)
não sei mas talvez file pode ser um nome reservado do PHP, tenta mudar o nome pra arquivo e tenta também mudar empty para if(!isset($_FILES['arquivo']))