Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

adrianob

[RESOLVIDO] importo o csv mas da erro no fopen

Recommended Posts

Estou importando um arquivo CSV para o BD.Quando importo o arquivo q está na mesma página atraves de um campo INPUT funciona perfeitamente, agora se passar esse campo INPUT TYPE = "TEXT" para TYPE = "FILE". o mesmo não funciona.Está dando o seguinte erro.

Warning: fopen(C:/Documents and Settings/Casa/Desktop/arquivo.csv): failed to open stream: Permission denied in C:\www\site\teste-import.php on line 28

Segue o código abaixo

<?include "../geral/conexao.php";if(isset($_POST['submit'])) { $filename=$_FILES['filename']; // Pega o nome do arquivo $filename_nome = $filename["name"]; $caminho = "C:/Documents and Settings/Mithos/Desktop/"; $handle = fopen($caminho.$filename_nome, "r"); while (($data = fgetcsv($handle, 4000, ";")) !== FALSE) { $import = mysql_query("insert into contrato (contrato,cpf,estagio,funcionario) values ('$data[0]','$data[1]','$data[2]','$data[3]')"); $error = mysql_error(); echo $error; } fclose($handle); print "Import done"; } else { print "<form enctype='multipart/form-data' action='teste-import.php' method='post'>"; print "Type file name to import:<br>"; print "<input type='file' name='filename' size='20'><br>"; print "<input type='submit' name='submit' value='submit'></form>"; }?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta trocar:

$filename_nome = $filename["name"];

Por:

$filename_nome = $filename["tmp_name"];

E no fopen, use apenas essa variável com o nome temporário do arquivo, que é o que foi enviado pelo form.

Faz um teste e poste o resultado ;)

 

[]s

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

De nada, Adriano ;)

Só esclarecendo, como ali você faz o upload (capo tipo file), o índice 'name' do array $_FILES possui apenas o nome do arquivo, enquanto que o índice 'tmp_name' carrega o nome temporário do arquivo carregado para o servidor e seu conteúdo, que pode então, por exemplo, ser movido com a função move_uploaded_file().

 

[]s

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.