Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 18:40 Der er 14 kommentarer

Hjælp til kopiering af filer vha. PHP til server

Jeg har et problem, jeg har undersøgt mange forskellige webhoteller, og fandt ud af at dem jeg har til en af mine domæner (b-one) ikke supporter at jeg kopiere filer vha. at en bruger vælger en fil og sender den til serveren. derfor fandt jeg til sidst web10, som understøtter dette, det stor der i hvertfald.

Men jeg lavede en mappe på deres ftp, og i CHMOD satte jeg den til 770, sådan at der kan skrives filer i den fra gruppe ( internettet )

Problemer opstår så, efter hvor jeg har prøvet at teste om det virker, jeg får følgende fejl:

Warning: copy(C:\a.jpg) function.copy: failed to open stream: No such file or directory in /usr/home/web/web39971/upload/upLoad.php on line 6

koden jeg bruger, og som jeg har prøvet at ændre utallige gange, altså vejen til det jeg kopiere og til det jeg vil kopiere til:

copy('C:\a.jpg', 'a.jpg.bak')

Men, er der en anden måde jeg skal kopiere vha. php på for at dette virker?, skal der opsættes noget andet?
Avatar billede sukos Juniormester
28. oktober 2004 - 18:42 #1
Der er ikke noet c-drev på web10! :O)
Avatar billede detox Nybegynder
28. oktober 2004 - 18:44 #2
Det lyder mere som om du tænker på upload af filer til serveren?
Avatar billede sukos Juniormester
28. oktober 2004 - 18:44 #3
Og hvis det er en fil som uploades,

move_uploaded_file($_FILES["upfile"]["tmp_name"], "/usr/home/web/web39971/upload/". $_FILES["upfile"]["name"]);
Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 19:30 #4
detox præcis, men sukos, når jeg vha. php bruger

copy('C:\a.jpg', 'a.jpg.bak')
så skal jeg derefter:
move_uploaded_file($_FILES['a.jpg.bak']["tmp_name"], "/usr/home/web/web39971/upload/". $_FILES['a.jpg.bak']["name"]);
Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 19:31 #5
Sukos, c drev hvad snakker du om?

copy('C:\a.jpg', 'a.jpg.bak') den første parameter i copy, er hvor filen er man vil kopiere, den anden del er, hvor man vil kopiere til, i dette tilfælde upload mappen, eftersom dette script ligger i denne
Avatar billede sukos Juniormester
28. oktober 2004 - 19:37 #6
Du kan ikke kopiere fra et drev som ikke findes, til et drev som heller ikke findes!

Warning: copy(C:\a.jpg) function.copy: failed to open stream: No such file or directory in /usr/home/web/web39971/upload/upLoad.php on line 6



Når det er upload, så brug move_uploaded_file() i stedet for copy()
Medmindre du bruger en gammel php-version.
Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 19:39 #7
move_iploaded_file() kopire den også, altså kan jeg vha. denne funktion kopiere vha. et php script fra min computer til den server hos web10?, pga. i navnet move_uploaded_file lyder det som om den vil "flytte" den uploadede fil
Avatar billede sukos Juniormester
28. oktober 2004 - 19:43 #8
Når du uploader en fil til serveren, laver serveren en tmp-fil, (den ligger jo stadig på din comp)
$_FILES["upfile"]["tmp_name"]
og den flyttes, så den ikke længere er "tmp" fil

http://dk2.php.net/manual/da/features.file-upload.php
Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 19:44 #9
move_uploaded_file -- Moves an uploaded file to a new location
fra php.net, det er ikke det jeg skal bruge, jeg skal kunne uploade filer til min web10 webhotel fra en php side, til et dynamisk billedArkiv.
jeg har dog set på comments hvor det ligner at folk bruger den til upload, jeg prøver da lige.
Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 20:32 #10
sukos, $_FILES["upfile"]["tmp_name"] <-- tmp_name hvad skal der står der? upfile = navnet på filen right?
Avatar billede detox Nybegynder
28. oktober 2004 - 20:43 #11
Når du skal uploade filer til en server skal du bruge en form med et inputfelt af typen 'file'. På siden hvor du modtager oplysningerne fra formen ligger de så i et array: $_FILES, hvor 'upfile' fra eksemplet er navnet på inputfeltet.
Avatar billede detox Nybegynder
28. oktober 2004 - 20:51 #12
Her er et eksempel:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>File upload</title>
<meta http-equiv="Content-Type" content="text/html; Cache-control: Private; charset=ISO-8859-1" />
<link rel="stylesheet" type="text/css" href="lysstyle.css" />
</head>
<body>
<?php
$sti = 'uploads/'; // Sti til mappen med uploadede filer
if (isset($_POST['submit'])) {
    if (is_uploaded_file($_FILES['upfil']['tmp_name'])) {
        $filnavn = $_FILES['upfil']['name'];
        move_uploaded_file($_FILES['upfil']['tmp_name'], $sti . $filnavn);
        echo "<h3>$filnavn er uploaded til serveren</h3>";
    } else {
        // Der er ikke valgt nogen fil
    }
} else {
?>
<h3>Upload fil:</h3>
<form enctype="multipart/form-data" method="post" name="<?php echo $_SERVER['PHP_SELF']?>">
<table>
<tr><td><label for="upfil">Fil: </label></td>
<td><input type="file" name="upfil" id="upfil" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" id="submit" value="Upload fil" /></td></tr>
</table>
</form>
<?php
}?>
</body>
</html>
Avatar billede augustjoergensen Nybegynder
28. oktober 2004 - 21:45 #13
Jeg glemte enctype i min ;( måske derfor det ikkke virkede, jeg fik hjælp fra:

http://dk2.php.net/features.file-upload

godt beskrevet, af php.net folkene
Avatar billede detox Nybegynder
28. oktober 2004 - 22:23 #14
Manualen er din ven ;O)
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