wie die FileUpload-Funktion benutzen ???

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Lukestar
Mitglied
Beiträge: 2
Registriert: 01.09.2010 11:30

wie die FileUpload-Funktion benutzen ???

Beitrag 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>
Benutzeravatar
Lukestar
Mitglied
Beiträge: 2
Registriert: 01.09.2010 11:30

Re: wie die FileUpload-Funktion benutzen ???

Beitrag 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 ...
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“