Avatar billede dgim Nybegynder
29. marts 2009 - 16:39 Der er 2 kommentarer og
1 løsning

Kopier filer fra mysql (blob) til ftp

Er det muligt at kopiere filer fra mysql til en ftp?
Jeg syntes ikke lige jeg kan finde noget på nettet om det.
En der har et forslag?
Avatar billede jakobdo Ekspert
29. marts 2009 - 20:43 #1
Du kan jo udlæse en blob i en variabel, og så gemme den som fil med fwrite() eller sende den til browseren med header().
Og hvis du har adgang til php's ftp funktioner, så bør du godt kunne uploade dem også.
Avatar billede dgim Nybegynder
31. marts 2009 - 20:00 #2
Jeg er kommet frem til følgende løsning som ser ud til at virke.
Kan det laves smartere eller er det helt ude i skoven :)

<?php

$ftpServer = "servernavn";
$ftpUser = "brugernavn";
$ftpPass = "password";

$conn = @ftp_connect($ftpServer)
or die("Couldn't connect to FTP server\n");

$login = @ftp_login($conn, $ftpUser, $ftpPass)
or die("Login credentials were rejected\n");

if ((!$conn) || (!$login)) {
  echo "FTP connection has failed!";
  echo "Attempted to connect to $ftpServer for user $ftpUser\n";
  exit;
}
else {
  echo "Connected to $ftpServer, for user $ftpUser\n";
}

ftp_chdir($conn, 'test');

$result = dbquery("SELECT content FROM table WHERE ID=1");
$rdata = dbarray($result);

if (!empty($rdata['data_content'])) {
  $filename = "test.zip";
  $content = $rdata['data_content'];
 
    if (!$tempHandle = fopen('php://temp', 'w+')) {
      echo "Cannot open temp file";
      exit;
    }

    if (fwrite($tempHandle, $content) === FALSE) {
      echo "Cannot write to temp file";
      exit;
    } else {     
      rewind($tempHandle);
    }

  if (ftp_fput($conn, $filename, $tempHandle, FTP_BINARY)) {
    echo "Successfully uploaded $filename\n";
  } else {
    echo "There was a problem while uploading $filename\n";
  }
 
  fclose($tempHandle);
}

ftp_close($conn);

?>
Avatar billede dgim Nybegynder
11. april 2009 - 17:17 #3
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester