Seite 1 von 1

wie die FileUpload-Funktion benutzen ???

Verfasst: 01.09.2010 11:53
von Lukestar
Hallo Leute,

ich arbeite gerade an einem eigenen Mod der mein phpbb zu einer Intranet-Datenbank-Lösung für unseren Verein macht.
Bisher habe ich erfolgreich eigene Tabellen anlegen, Datensätze hinzufügen, aktualisieren und löschen können.
Auch die Templates, der Style und die Benutzerverwaltung machen mir keine Probleme, alles bestens.

Nur beim benutzen der FileUpload-Funktion steh ih jetzt mal völlig auf dem Schlauch.

Ich habe die Avatar-Upload-Funktion aus dem UCP-Profile als Ansatz genommen und
das Formular dementsprechend nachgebaut und angepasst.
Aber ich bekomme bei dem php-script einfach keinen Ansatz wie ich an die gesendeten Daten rankommen soll,
diese in das Verzeichniss hochladen lasse und den Dateinamen anpasse (unique) und abspeicher.

Ich weiß das diese Funtionen ja im phpbb drin sind, finde aber nicht den Einstieg wie ich sie richtig ansprechen kann.

für jeden Tip währe ich mehr als Dankbar ...

hier mal mein Formular:

Code: Alles auswählen

	<form method="post" action="{POST_ACTION}"  name="postform" enctype="multipart/form-data">
  	<table class="tablebg" width="100%" cellspacing="1">
  	<tr>
  		<th colspan="2" nowrap="nowrap">{L_VIEWING_ID} {VIEW_ID}</th>
  	</tr>
  	<tr>
  		<td colspan="2" class="cat" width="50%" align="center"><h4>{L_ANLAGEN}</h4></td>
  	</tr>
  	<tr>
  	<tr> 
  		<td class="row1" width="35%"><b class="genmed">Datei hochladen: </b></td>
  		<td class="row2">
      <input type="file" name="fileupload" id="fileupload" maxlength="{FILESIZE}" value="" class="inputbox autowidth" /> 
			<input type="submit" name="add_file" value="Hochladen" class="button2" onclick="upload = true;" />
      
      </td>
  	</tr>
  	</tr>
  	<tr>
      <td class="cat" colspan="2" align="center"><input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" />&nbsp;&nbsp;<input class="btnlite" type="button" onClick="window.location='{DEL_ACTION}'" value="{L_DELETE}" name="löschen" /></td>
    </tr>
  	</table>
	</form>

Re: wie die FileUpload-Funktion benutzen ???

Verfasst: 13.11.2010 13:49
von Lukestar
Meine Lösung:
Template-Datei:

Code: Alles auswählen

	<form action="{POST_ACTION}" method="post" name="postform"{FORM_ENCTYPE}>
    <table class="tablebg" width="100%" cellspacing="1">
    	<tr>
    		<th nowrap="nowrap" colspan="2">{L_VIEWING_ID} {VIEW_ID}</th>
    	</tr>

			<tr>
				<th colspan="2">
					<script type="text/javascript">
					// <![CDATA[
						/**
						* Show upload progress bar
						*/
						function popup_progress_bar()
						{
							close_waitscreen = 0;
							// no scrollbars
							popup('myupload.php?mode=popup', 400, 200, '_upload');
						}
					// ]]>
					</script>

					<!-- IF S_CLOSE_PROGRESS_WINDOW -->
						<script type="text/javascript">
						// <![CDATA[
							close_waitscreen = 1;
						// ]]>
						</script>
					<!-- ENDIF -->

					Dateianhang hochladen
				</th>
			</tr>
			<tr>
				<td class="row3" colspan="2"><span class="gensmall">Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.</span></td>
			</tr>

			<tr>
				<td class="row1"><b class="genmed">{L_FILENAME}</b></td>
				<td class="row2"><input type="file" name="file" size="40" maxlength="{FILESIZE}" value="" class="btnfile" /></td>
			</tr>
			<tr>
				<td class="row1"><b class="genmed">{L_FILE_COMMENT}</b></td>
				<td class="row2">
					<table border="0" cellspacing="0" cellpadding="2">
					<tr>
						<td><textarea class="post" name="filecomment" rows="3" cols="35">{FILE_COMMENT}</textarea>&nbsp;</td>
						<td valign="top">
							<table border="0" cellspacing="4" cellpadding="0">
							<tr>
								<td><input class="btnlite" type="submit" style="width:150px" name="add_file" value="Datei hinzufügen" onclick="popup_progress_bar();" /></td>
							</tr>
							</table>
						</td>
					</tr>
					</table>
				</td>
			</tr>
			<tr>
				<td colspan="2">
				
				<table class="tablebg" width="100%" cellspacing="1">
			  	<tr>
			  		<td colspan="5" class="cat" align="center"><h4>{L_HISTORIE}</h4></td>
			  	</tr>
			     <tr>
			        <th>{L_ID}</th>
			        <th>{L_UID}</th>
			        <th>{L_FILENAME}</th>
			        <th>{L_LOGTIME}</th>
			        <th>{L_FILE_COMMENT}</th>
			      </tr>
			     <!-- BEGIN block_file -->
			      <tr class="<!-- IF block_log.S_ROW_COUNT is even -->row1<!-- ELSE -->row2<!-- ENDIF -->">
			        <td align="left" nowrap>{block_file.ID}</td>
			        <td align="left" nowrap>{block_file.UID}</td>
			        <td align="left" nowrap><a href="{block_file.FILEPFAD}" target="blank">{block_file.FILE}</a></td>
			        <td align="left" nowrap>{block_file.TIME}</td>
			        <td align="left">{block_file.TEXT}</td>
			      </tr>
			      <!-- END block_file -->
			  	</tr>
			  </table>

				</td>
			</tr>
    </table>
  </form>
myupload.php (Auszüge):

Code: Alles auswählen


/**
* Show upload popup (progress bar)
*/
function upload_popup($forum_style = 0)
{
	global $template, $user;

	($forum_style) ? $user->setup('posting', $forum_style) : $user->setup('posting');

	page_header($user->lang['PROGRESS_BAR'], false);

	$template->set_filenames(array(
		'popup'	=> 'posting_progress_bar.html')
	);

	$template->assign_vars(array(
		'PROGRESS_BAR'	=> $user->img('upload_bar', $user->lang['UPLOAD_IN_PROGRESS']))
	);

	$template->display('popup');

	garbage_collection();
	exit_handler();
}

// Modus auswählen ...
switch ($mode)
{
	case 'popup':
		{
			upload_popup();
			return;
		}
	break;

//----------- der Teil der den Upload verarbeitet und in der Tabelle speichert 
				if ($_FILES["file"]["error"] > 0){}
				else
				  {
					$md5filename = $user->data['user_id'] . "_" . md5(unique_id());
					if (file_exists($phpbb_root_path.$config['upload_path']."/".$md5filename))
         		{
			      trigger_error("Fehler!: " . $phpbb_root_path. $config['upload_path'] ."/". $md5filename. " existiert bereits. ");
			      }
			    else
			      {
			      move_uploaded_file($_FILES["file"]["tmp_name"],$phpbb_root_path. $config['upload_path'] ."/". $md5filename);

				    $save_post_msg_id	= $id;
				    $sqlTabs = $sqlTabs ."post_msg_id,";$sqlValues = $sqlValues .$save_post_msg_id .",";
				    $save_topic_id	= $id;
				    $sqlTabs = $sqlTabs ."topic_id,";$sqlValues = $sqlValues .$save_topic_id .",";
				    $save_poster_id	= $user->data['user_id'];
				    $sqlTabs = $sqlTabs ."poster_id,";$sqlValues = $sqlValues .$save_poster_id .",";
			      $save_physical_filename	= $md5filename;
				    $sqlTabs = $sqlTabs ."physical_filename,";$sqlValues = $sqlValues ."'".$save_physical_filename ."',";
			      $save_real_filename	= $_FILES["file"]["name"];
				    $sqlTabs = $sqlTabs ."real_filename,";$sqlValues = $sqlValues ."'".$save_real_filename ."',";
			      $save_extension	= strrchr($_FILES["file"]["name"],".");
				    $sqlTabs = $sqlTabs ."extension,";$sqlValues = $sqlValues ."'".$save_extension ."',";
				    $save_mimetype	= $_FILES["file"]["type"];
				    $sqlTabs = $sqlTabs ."mimetype,";$sqlValues = $sqlValues ."'".$save_mimetype ."',";
				    $save_filesize	= $_FILES["file"]["size"];
				    $sqlTabs = $sqlTabs ."filesize,";$sqlValues = $sqlValues .$save_filesize .",";
				    $save_filetime	= time();
				    $sqlTabs = $sqlTabs ."filetime,";$sqlValues = $sqlValues .$save_filetime .",";
				    $save_attach_comment	= request_var('filecomment', '',True);
				    $sqlTabs = $sqlTabs ."attach_comment,";$sqlValues = $sqlValues ."'".$save_attach_comment ."',";
				    
				    $sqlTabs = substr($sqlTabs,0,(strlen($sqlTabs)-1));
				    $sqlValues = substr($sqlValues,0,(strlen($sqlValues)-1));
						//trigger_error("sqlTabs: " .$sqlTabs. ", sqlValues: ". $sqlValues);

						$sql = "INSERT INTO " .ATTACHMENTS_TABLE. " (" . $sqlTabs . ") VALUES (" . $sqlValues . ")";
				    $result = $db->sql_query($sql);
				    $db->sql_freeresult($result);
			      }
					}
        redirect(append_sid("{$phpbb_root_path}myupload.php?mode=viewid&id=$id&action=$action"));
ich hoffe das mal jemand wie ich nach sowas sucht und damit was anfangen kann ...