Page 1 of 1

Trouble creating zip from form

Posted: Wed Jan 11, 2012 10:55 am
by erhilse
I have a form that you fill in the information then once its submitted it creates a pdf and emails the pdf and a file upload to a specific email. I need to make it so 1) Creates a zip file with the pdf and file upload 2) the zip file uses a name from the form. 3) Add multiple file uploads. I been searching the web and trying out different ways for the last few days but nothing seems to work for me can someone looks at my code and help me out?

Heres my code....

Code: Select all

<?php
if (!empty($_POST)) {

	$success = $error = false;

	$post = new stdClass;
	
	$file = $_FILES["attachment"]["tmp_name"]; //"attachment" is the name of your input field, "tmp_name" gets the temporary path to the uploaded file.
	
	$filename = $_FILES["attachment"]["name"]; //"name" gets the filename of the uploaded file.			
	
	foreach ($_POST as $key => $val)
		$post->$key = trim(strip_tags($_POST[$key]));
		
	if (empty($post->name) OR empty($post->email))
		$error = true;
	
	else {
		
		$dir = dirname(__FILE__);
		
		ob_start();
		require_once($dir.'/pdf.php');
		$pdf_html = ob_get_contents();
		ob_end_clean();
		
		require_once($dir.'/dompdf/dompdf_config.inc.php');
		
		$dompdf = new DOMPDF();
		$dompdf->load_html($pdf_html);
		$dompdf->render();
		$pdf_content = $dompdf->output();
		
		ob_start();
		require_once($dir.'/html.php');
		$html_message = ob_get_contents();
		ob_end_clean();
		
		require_once($dir.'/swift/swift_required.php');

		$mailer = new Swift_Mailer(new Swift_MailTransport());
	
		$attachment = Swift_Attachment::fromPath($file, $_FILES["attachment"] ["type"]); 
		$attachment->setFilename($filename);

		$message = Swift_Message::newInstance()
				       ->setSubject('Order Entry') // Message subject
					   ->setTo(array('ehilse@paifashion.com' => 'Eric Hilse')) // Array of people to send to
					   ->setFrom(array('cwarhurst@paifashion.com' => 'PAi Order Entry'))
					   ->setBody($html_message, 'text/html') // Attach that HTML message from earlier
					   ->attach(Swift_Attachment::newInstance($pdf_content, 'design.pdf', 'application/pdf')) // Attach the generated PDF from earlier
					   ->attach($attachment);

		// Send the email, and show user message
		if ($mailer->send($message))
			$success = true;
		else
			$error = true;
		
	}

}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<title>PAi Cap & Tee Art Pack Order Form</title>
	<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>

<body>

	<div id="container">
				<div id="logo">
					<img src="images/pailogo.png" id="logo" />
				</div>
			<h1><abbr title="Paramount Apparel International">PAi</abbr> Cap & Tee Art Pack Order Form</h1>
	
			<?php if ($success) { ?>
				<div class="message success">
					<h4>Congratulations! It worked! Your order has been sent.</h4>
				</div>
			<?php } elseif ($error) { ?>
				<div class="message error">
					<h4>Sorry, an error occurred. Try again!</h4>
				</div>
			<?php } ?>
		
			<form method="post" action="" enctype="multipart/form-data">
				<fieldset>
					<legend>Please fill in the following form:</legend>
						<label for="name">Your Name:<span class="required">*</span></label>
						<input type="text" name="name" id="name" class="input" />
			
						<label for="email">Your Email:<span class="required">*</span></label>
						<input type="text" name="email" id="email" class="input" />		
			
			<br />
			
						<label for="artpacknumber">Art Pack Number:<span class="required">*</span></label>
						<input type="text" name="artpacknumber" id="artpacknumber" class="input" />			
						
						<label for="language">New Or Revise?<span class="required">*</span></label>
						<select name="language" id="language">
							<option value="NEW">New</option>
							<option value="REVISE">Revise</option>
						</select>
						
			<br />	
					
						<label for="duedate">Due Date:<span class="required">*</span></label>
						<input type="text" name="duedate" id="duedate" class="input" />
			
						<label for="dateentered">Date Entered:<span class="required">*</span></label>
						<input type="text" name="dateentered" id="dateentered" class="input" />
			
			<br />
			
						<label for="designname">Design Name:<span class="required">*</span></label>
						<input type="text" name="designname" id="designname" class="input" />
			
			<br />
			
						<label for="customer">Customer:<span class="required">*</span></label>
						<input type="text" name="customer" id="customer" class="input" />
			
						<label for="account">Account:<span class="required">*</span></label>
						<input type="text" name="account" id="account" class="input" />
			
			<br />
			
						<label for="salesrep">Sales Rep:<span class="required">*</span></label>
						<input type="text" name="salesrep" id="salesrep" class="input" />
			
						<label for="extension">Extension:<span class="required">*</span></label>
						<input type="text" name="extension" id="extension" class="input" />
			
			<br />
			
						<label class="commentslabel" for="comments">Comments:<span class="required">*</span></label>
						<textarea name="comments" id="comments" rows="4" cols="40"></textarea>
			
			<br />
			
						<label for="attachment">File Upload<br /><span class="required">*</span></label>
						<input name="attachment" id="attachment" type="file">
						
			<br />			
			
						<input type="submit" class="submit" id="submit" value="Submit" />
						
			</fieldset>
			
		</form>
	
	</div>

</body>
</html>

Re: Trouble creating zip from form

Posted: Wed Jan 11, 2012 5:27 pm
by Christopher
erhilse wrote:I been searching the web and trying out different ways for the last few days but nothing seems to work for me can someone looks at my code and help me out?
Well, one think at a time. How much of the process you described currently works. For example, does the upload work and can you display a list of everything to be put in the zip archive? Or is the zip archive successfully created? It seems like in your three steps the last thing would be to create the zip archive.

Re: Trouble creating zip from form

Posted: Mon Jan 16, 2012 10:01 am
by erhilse
Right now when the user submits the form. It emails me a pdf with the results and then also whatever file they uploaded is attached with it. I would like the generated pdf file and the uploaded file or files if I add multiple into the zip archive.

Re: Trouble creating zip from form

Posted: Mon Jan 16, 2012 7:38 pm
by Christopher
To create a zip archive you can either do that using a shell like exec("zip ...") or use the zip library.