Ergebnis 1 bis 5 von 5
  1. #1
    mikefried ist offline Jungspund
    registriert
    07-09-2009
    Beiträge
    14

    AJAX Upload funktioniert nicht ?

    Hallo,

    ich brauche mal Eure Hilfe. Ich versuche zur Zeit einen AJAX Upload von
    http://valums.com/ajax-upload/ zum laufen zu bringen. Nur funktioniert es nicht und ich finde den Fehler nicht. Meine html Seite inder der Upload button sein soll, sieht so aus

    HTML-Code:
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Ajax upload demo</title>
        <!-- We will use version hosted by Google-->
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
        
    	<!-- Required for jQuery dialog demo-->
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script>
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css" type="text/css" media="all" />
    
        <!-- AJAX Upload script itself doesn't have any dependencies-->
        <script type="text/javascript" src="ajaxupload.js"></script>
    
        <style type="text/css">
            body {font-family: verdana, arial, helvetica, sans-serif;font-size: 12px;background: #373A32;color: #D0D0D0; direction: ltr;}
            h1 {color: #C7D92C;	font-size: 18px; font-weight: 400;}
            a {	color: white;}
            a:hover, a.hover {color: #C7D92C;}
            #text {	margin: 25px; }
            ul { list-style: none; }
            .example { padding: 0 20px; float: left; width: 230px; }
    		.wrapper { width: 133px; margin: 0 auto; }
    		
    		div.button {
    			height: 29px;	
    			width: 133px;
    			background: url(button.png) 0 0;
    			
    			font-size: 14px; color: #C7D92C; text-align: center; padding-top: 15px;
    		}
    		/* 
    		We can't use ":hover" preudo-class because we have
    		invisible file input above, so we have to simulate
    		hover effect with JavaScript. 
    		 */
    		div.button.hover {
    			background: url(button.png) 0 56px;
    			color: #95A226;	
    		}
    		
    		#button2.hover, #button4.hover { text-decoration:underline; }
    	</style>
    	
    	<script type="text/javascript">/*<![CDATA[*/
    	$(document).ready(function(){
    		/* Example 1 */
    		var button = $('#button1'), interval;
    		
    		new AjaxUpload(button, {
    			action: 'upload-handler.php', 
    			name: 'myfile',
    			data:{
             example_key2 : 'example_value2'  
          },
          autoSubmit: true,
    			onSubmit : function(file, ext){
    				// change button text, when user selects file			
    				button.text('Uploading');
    								
    				// If you want to allow uploading only 1 file at time,
    				// you can disable upload button
    				this.disable();
    				
    				// Uploding -> Uploading. -> Uploading...
    				interval = window.setInterval(function(){
    					var text = button.text();
    					if (text.length < 13){
    						button.text(text + '.');					
    					} else {
    						button.text('Uploading');				
    					}
    				}, 200);
    			},
    			onComplete: function(file, response){
    				button.text('Upload');
    							
    				window.clearInterval(interval);
    							
    				// enable upload button
    				this.enable();
    				
    				// add file to the list
    				$('<li></li>').appendTo('#example1 .files').text(file);						
    			}
    		});
    	
    	
    		
    	});/*]]>*/</script>
    	</head>
    <body>
    <div id="text">
    
    </div>
    
    <ul>
    	<li id="example1" class="example">
    		<p>You can style button as you want</p>
    		<div class="wrapper">
    			<div id="button1" class="button">Upload</div>
    		</div>
    		<p>Uploaded files:</p>
    		<ol class="files"></ol>
    	</li>
    	
    
    </ul>
    </body>
    </html>
    

    die PHP Datei, die sich um den Upload kümmern soll hat folgenden Code

    PHP-Code:
    <?php

    function helper_makeDir($dir){
            if(!
    file_exists($dir))
            {  if(!(
    mkdir$dir0777 )))
                { die (
    "ERROR was occurred. Attempting create folder!");
                }
            }
    }

    $uploadfile basename($_FILES['userfile']['name']);

     
     
    $dir 'leer' $_FILES['userfile']['name'];
     
    helper_makeDir($dir);

     
    $dir 'leer2' $_FILES['userfile']['tmp_name'];
     
    helper_makeDir($dir); 
      
    if (
    move_uploaded_file($_FILES['userfile']['tmp_name'], $_FILES['userfile']['name'])) {
      echo 
    "success";
    } else {
      
    // WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
      // Otherwise onSubmit event will not be fired
      
    echo "error";
    }

    Der Fehler muss bei der Übergabe der Form Daten liegen. Die Variablen $_FILES['userfile']['tmp_name'] und $_FILES['userfile']['name'] sind leer?????


    wenn ich auf meine extra Variable example_key2 zugreifen möchte mit
    zum beispiel $var = $_POST['example_key2']; ist diese auch leer!!!!

    Kann mir einer weiterhelfen???

    Gruss Mike

  2. #2
    mikefried ist offline Jungspund
    registriert
    07-09-2009
    Beiträge
    14

    AW: AJAX Upload funktioniert nicht ?

    einen kleinen Fehler habe ich schon gefunden....

    die Zeile name: 'myfile', muss gelöscht werden, sonst funktioniert $_FILE['userfile'][] nicht da userfile ja durch den Namen myfile ersetzt.

    Mein Problem ist nun das der tmp_name der hochgeladenen Datei nicht existiert???

    wenn ich
    $dir = 'Key_' . $_POST['example_key2'];
    helper_makeDir($dir);

    funktioniert es!!!!

    wenn ich das teste
    $dir = 'name' . $_FILES['userfile']['name'];
    helper_makeDir($dir);

    und das
    $dir = 'error' . $_FILES['userfile']['error'];
    helper_makeDir($dir);

    funktioniert es. Bei error kommt der Code 0, was ja bedeutet, dass alles funktioniert hatt????
    wenn ich aber nun schreibe

    $dir = 'tmp' . $_FILES['userfile']['tmp_name'];
    helper_makeDir($dir);

    bricht php ab, warum weis ich nicht????

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.681

    AW: AJAX Upload funktioniert nicht ?

    Was macht denn die funktion helper_makeDir?
    Welchen Fehler gibt PHP aus? Wenn kein Fehler ausgegeben wird solltest du error_reporting einschalten.

  4. #4
    mikefried ist offline Jungspund
    registriert
    07-09-2009
    Beiträge
    14

    AW: AJAX Upload funktioniert nicht ?

    die fkt helper_makeDir steht mit in meinem php code, gleich ganz oben.

    der Fehlercode bei $_FILES['userfile']['error']; ist ja 0!!!

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.681

    AW: AJAX Upload funktioniert nicht ?

    Ups - übersehen. Und du warum willst du ein Verzeichnis, das so heißt wie deine temporäre Datei?
    Das ist kein PHP-Fehler, sondern sagt nur, dass die Datei richtig übertragen wurde. http://php.net/manual/en/function.error-reporting.php (am besten E_ALL).

Ähnliche Themen

  1. Upload von Dateien per Ajax
    Von GELight im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 04-09-2009, 12:46
  2. funktioniert AJAX mit Tabellen ???
    Von lescha im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 29-08-2009, 15:02
  3. Antworten: 17
    Letzter Beitrag: 07-01-2009, 23:34
  4. Ajax funktioniert nicht
    Von cyberkuh im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 06-01-2008, 14:23
  5. ajax menü funktioniert das im ie nicht?
    Von saibonaut im Forum Script-Check
    Antworten: 8
    Letzter Beitrag: 27-09-2007, 16:01

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •