Avatar billede perneis Nybegynder
02. juli 2011 - 11:25 Der er 11 kommentarer og
1 løsning

php ftp upload

Hej

jeg prøver at lave en ftp upload på min hjemmeside så en bruger kan uploade store filer til serveren.

jeg vil starte med at ligge et link ind til siden hvor det skal køre fra...

http://www.msflightsim.eu/fileupload


som du sikkert kan se på denne side er alt tastet ind på forhånd så brugeren ikke skal bruge tid på dette.


når jeg prøver at uploade en fil få jeg denne fejl....


Warning: ftp_login() expects parameter 1 to be resource, boolean given in D:\Sites\msflightsim.eu\public_html\uploadftp.php on line 22
FTP connection has encountered an error!Attempted to connect to for user ....


Her under kommer så selve mit php script....

<?

   
set_time_limit(300);
   
$paths=$_POST['/public_html/upload/'];

$filep=$_FILES['userfile']['tmp_name'];

$ftp_server=$_POST['ftp.msflightsim.eu'];

$ftp_user_name=$_POST['anonymous@msflightsim.eu'];

$ftp_user_pass=$_POST['WHdFkJH7h'];

$name=$_FILES['userfile']['name'];



$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result)) {
      echo "FTP connection has encountered an error!";
      echo "Attempted to connect to $ftp_server for user $ftp_user_name....";
      exit;
  } else {
      echo "Connected to $ftp_server, for user $ftp_user_name".".....";
  }

$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY);

if (!$upload) {
      echo "FTP upload has encountered an error!";
  } else {
      echo "Uploaded file with name $name to $ftp_server ";
  }

ftp_close($conn_id);   

?>

Er her en som kan se hvor det gå galt....???????

jeg er sikker på at der også er noget galt med den her tekst


FTP_BINARY


for den er sort, hvor alt andet tekst er i farver

jeg vil samtidig høre om det er muligt at på den ene eller anden måde at begrænse en bruger med at sætte noget ind i scriptet at maxfileupload er 100 mb og kun zip filer er tilladt.....?????

glæder mig til at høre fra jeg....

mvh

Neis
Avatar billede perneis Nybegynder
02. juli 2011 - 12:15 #1
jeg glemte lige en ting......

jeg ved at mappen "upload" skal have tildelt en tilladelse, men tildeler jeg den "777" kan en bruger vel bådet uploade, downloade og slette og det ønsker jeg jo ikke, derfor vil jeg høre kan jeg tildele den "222" så man kun kan skrive til den eller vil det ikke virke i denne forbindelse....??????
Avatar billede erikjacobsen Ekspert
02. juli 2011 - 12:24 #2
Din angivelse af $ftp_server ser forkert ud:

  $ftp_server=$_POST['ftp.msflightsim.eu'];

Enten mener du

  $ftp_server='ftp.msflightsim.eu';

ellers også skal du bruge et felt navn fra din indtasningsformular:

  $ftp_server=$_POST['FELT-NAVN'];
Avatar billede perneis Nybegynder
02. juli 2011 - 13:18 #3
takker erikjacobsen, det ser ud til at virke......

men nu kommer den med fejl på line 32:

$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY);

det her er den fejl den kommer med:


Connected to ftp.msflightsim.eu, for user anonymous@msflightsim.eu.....
Warning: ftp_put() [function.ftp-put]: /upload/uploadkglp.zip: No such file or directory in D:\Sites\msflightsim.eu\public_html\uploadftp.php on line 32
FTP upload has encountered an error!


jeg har en mappe som hedder upload og det har tilladelse 777 så hvad er problemet...????
Avatar billede erikjacobsen Ekspert
02. juli 2011 - 13:23 #4
Når du skriver /upload/uploadkglp.zip så siger du så at den ligger i roden af webserveren?
Avatar billede perneis Nybegynder
02. juli 2011 - 13:44 #5
nu har jeg ændret min form til:
<form action="uploadftp.php" method="POST" enctype="multipart/form-data">
<table align="center">
<tr>
<td align="right">
Server:
</td>
<td>
<input size="50" type="text" name="server" value="ftp.msflightsim.eu">
</td>
</tr>
<tr>
<td align="right">
Username:
</td>
<td>
<input size="50" type="text" name="user"  value="anonymous@msflightsim.eu">
</td>
</tr>
<tr>
<td align="right">
Password:
</td>
<td>
<input size="50" type="text" name="password" value="WHdFkJH7h" >
</td>
</tr>
<tr>
<td align="right">
Path on the server:
</td>
<td>
<input size="50" type="text" name="pathserver" value="ftp.msflightsim.eu/upload" >
</td>
</tr>
<tr>
<td align="right">
Select your file:
</td>
<td>
<input name="userfile" type="file" size="50">
</td>
</tr>
</table>
<table align="center">
<tr>
<td align="center">
<input type="submit" name="submit" value="Upload Your ZIP" />
</td>
</tr>

</table>
</form>


og jeg har ændret min php til:

<?

   
set_time_limit(300);
   
$paths=$_POST['pathserver'];

$filep=$_FILES['userfile']['tmp_name'];

$ftp_server=$_POST['server'];

$ftp_user_name=$_POST['user'];

$ftp_user_pass=$_POST['password'];

$name=$_FILES['userfile']['name'];



$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result)) {
      echo "FTP connection has encountered an error!";
      echo "Attempted to connect to $ftp_server for user $ftp_user_name....";
      exit;
  } else {
      echo "Connected to $ftp_server, for user $ftp_user_name".".....";
  }

$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY);

if (!$upload) {
      echo "FTP upload has encountered an error!";
  } else {
      echo "Uploaded file with name $name to $ftp_server ";
  }

ftp_close($conn_id);   

?>

men den kommer stadig med en fejl på line 32....


Connected to ftp.msflightsim.eu, for user anonymous@msflightsim.eu.....
Warning: ftp_put() [function.ftp-put]: ftp.msflightsim.eu/upload/kglp.zip: No such file or directory in D:\Sites\msflightsim.eu\public_html\uploadftp.php on line 32
FTP upload has encountered an error!


som jeg ser det er det en mappe den siger der ikke er der men det forstå jeg ikke, for under "public_html" ligger der en mappe med navnet upload sammen med alle mine andre mapper og hjemmeside filer....
Avatar billede erikjacobsen Ekspert
02. juli 2011 - 14:14 #6
Det er tænkeligt at du skal skrive det fulde stinavn, som måske er

  D:\Sites\msflightsim.eu\public_html\upload\kglp.zip

Men jeg må så indrømme, at jeg ikke helt forstår den underliggende mening med hele denne øvelse, når det du siger er at "å en bruger kan uploade store filer til serveren."

Du bruger almindelig HTML-upload, og så ligger filen på serveren, og så bruger du ftp til at lægge den et andet sted.

Hvad er pointen?
Avatar billede perneis Nybegynder
02. juli 2011 - 14:26 #7
pointen er at lave en side hvor der er mulighed for at uploade filer på op til 100 mb..... jeg har prøvet meget andet endda at få en php programmør til at lave et php upload script, men lige meget hvad jeg har gjort har det været uden held jeg har max kunne få den til at virke op til 30 mb, jeg har skrevet som en gal til min support men hans endste svar er bare at de ikke kan yde support på scripts de ikke har lavet, da jeg så spøger ham om de så kan lave et script som vil virke, så henvender ham mig bare et nogen som skal have en 7 -800 kr i timen + moms...... jeg fandt så denne mulighed her med ftp upload. mit ønske er at brugeren skal gøre så lidt som muligt og så nemt som er fysisk muligt meningen er at han bare skal tilføje sin fil og trykke på upload og ikke mere, jeg dog gerne have lavet nogle andre ting men det må jeg klare senere, det vigtigste er bare at få det til at virke så må det andet komme i anden række.....
Avatar billede erikjacobsen Ekspert
02. juli 2011 - 18:42 #8
Du har jo netop ikke lavet en ftp-upload. Du starter med en almindelig HTML-upload, som sikkert har en begrænsning på de 30MB du siger. Og når det så er uploadet, så flytter du filen med ftp. Det vil ikke give dig mere end 30MB.

Hvis brugeren kører et ftp-program på sin maskine, så kan han uploade mere.
Avatar billede perneis Nybegynder
02. juli 2011 - 18:50 #9
ja okay, jeg er snart godt træt af det her hver gang jeg tror yes nu er løsningen der så er der en som lige så stille piller mig ned igen til den virkelige verden..... øv øv øv øv øv øv .... nå men det er jo ikke din skyld at jeg er en idiot til det her php noget...
Avatar billede perneis Nybegynder
02. juli 2011 - 21:24 #10
Det var altså ikke løsningen, og jeg kan ikke finde noget på nettet, så bliver nok nød til at droppe upload med php, bruger pt. den her:

i toppen af dokumentet:


@{
    var fileName = "";
    if (IsPost) {
        var fileSavePath = "";
        var uploadedFile = Request.Files[0];
        fileName = Path.GetFileName(uploadedFile.FileName);
        fileSavePath = Server.MapPath("~/App_Data/UploadedFiles/" +
          fileName);
        uploadedFile.SaveAs(fileSavePath);
    }
}


<html>
<body>


    @FileUpload.GetHtml(
        initialNumberOfFiles:1,
        allowMoreFilesToBeAdded:false,
        includeFormTag:true,
        uploadText:"Upload")
    @if (IsPost) {
        <span>File uploaded!</span><br/>
    }

</body>
</html>

jeg har så ladet mig fortælle at min web.config spiller ind her så den ser sådan her ud:


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.data>
        <DbProviderFactories>
            <remove invariant="System.Data.SqlServerCe.4.0" />
            <add invariant="System.Data.SqlServerCe.4.0" name="Microsoft® SQL Server® Compact 4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
    </system.data>
    <system.net>
    <mailSettings>
      <smtp>
        <network host="mail.msflightsim.eu" port="587" userName="info@msflightsim.eu" password="xxxxxxxxx" />
      </smtp>
    </mailSettings>
  </system.net>
  <system.web>
  <httpRuntime maxRequestLength="100000000"
    enable = "True"
    requestLengthDiskThreshold="512"
    executionTimeout="600" />
  </system.web>

</configuration>


jeg ved at det virker op til 30 mb, jeg har talt med support og han siger at det ikke er et problem på serveren, men det er mig som gør noget forkert.......men hvad.....??????
Avatar billede erikjacobsen Ekspert
02. juli 2011 - 23:45 #11
Jeg kan ikke sige hvad der er galt, eller om det kan lade sig gøre. Det afhænger i hvert fald af opsætningerne på serveren.
Avatar billede perneis Nybegynder
11. juli 2011 - 15:56 #12
har ikke opnået en løsning og der kommer ikke flere indlæg så jeg lukker af her.....
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