Upload images på server med Safe_mode
Følgende spørgsmål er stillet til Surftown.Kan i hjælpe mig med følgende problem med upload af billeder.
Hvis jeg uploader billederne med et php script, får filen ikke de rette rettigheder til at kan vises. Serveren sætter automatisk user og group på filen til root. Upload filen ligger i en admin mappe der kræver login. Dette foregår også ved et php script. Mappen billeder som billederne uploades til er cdmod sat til 777.
Hvis billederne uploades vha ftp sætter serveren automatisk user og group på filen til bruger og de kan godt vises.
Umildbart ser det ud til at de 2 php script virker, men login er forskellig ved online og ftp upload. Ved ftp er login server bestemt og ved online er login bestemt ved et php script til admin mappen. Er det det der giver problem i forhold til rettigheder på serveren eller hvad?
Surftown's svar
Grunden til at du ikke kan uploade via PHP scriptet er fordi at vi har Safe_mode slået til på vores webhoteller. dette gør at du ikke kan oprette mapper og uploade dertil. Det script du bruger laver en midlertidig fil, og vil derefter kopiere filen fra den "midlertidige" destination og over til billedemappen, og det er denne kopiering der forhindrer scriptet i at uploade.
Den eneste løsning er derfor at finde et script som uploader direkte til billedemappen, og altså ikke laver denne midlertidige fil.
Kan i hjælpe medat tilrette sctipt så upload sker direkte i mappen ../billeder uden en midlertidig destination
Mit script ser således ud.
upload.php
<?php
if (isset($_FILES['filnavn'])) {
print "Fil, der er blever overført: {$_FILES['filnavn']['name']}<p>\n";
$query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'";
$Result1 = mysql_query($query, $horsfeldt) or die(mysql_error());
}
if (isset($_FILES['filnavn'])) {
$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../billeder/{$_FILES['filnavn']['name']} ";
copy($tempfile, $destination);
}
?>
<form action="upload.php" method="post" enctype="multipart/form-data" name="upload" id="upload">
Fil der skal overføres.
<label>
<input name="filnavn" type="file" id="filnavn" />
</label>
<br />
<br />
<br />
<label>
<input type="submit" name="Submit" value="Overfør" />
</label>
</form>
