Apr
29
2010
0

Subir archivo al servidor desde formulario y enviar email a usuario con enlace (Drupal)

El archivo se llama a sí mismo para procesar el archivo enviado por el usuario desde el formulario y enviar un email con un enlace al mismo. Con algunas modificaciones se podrá usar en cualquier entorno, no necesariamente en Drupal.

  1. <?php if ( !empty($_POST) ) {
  2. if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/sites/default/files/user_form_uploads/".$_FILES['uploadedfile']['name'])) {
  3. echo "The file has been uploaded";
  4. }
  5. echo "Thank you for sending your file.";
  6. $emailadd = 'Recipient.org <recipient@recipient.org>';
  7. $text = "Alguien envió un archivo desde la web.";
  8. $space = '';
  9. $line = '
  10. ';
  11. foreach ($_POST as $key => $value){
  12. if ( !empty($value) ) {
  13. if ($key!='submit' ) {
  14. $key = str_replace("_", " ", $key);
  15. $text .= "<strong>".$key . ":</strong> " . $value . "";
  16. $space = ' ';
  17. }
  18. if ($key=='Email') {
  19. $emailapplicant=$value;
  20. }
  21. }
  22. }
  23. $text .= $line."You can download the file uploaded by the user <a href='http://www.ejemplo.com/sites/default/files/user_form_uploads/".$_FILES['uploadedfile']['name']."'>clicking here</a>.";
  24. mail($emailadd, "Someone sent a file", $text, "From: ".$emailadd."\r\nContent-type: text/html\r\nContent-type: text/html\r\n");
  25. } ?>
  26. <form id="apply_aff_form" method="post" action="thispage.php" class="formular" enctype="multipart/form-data">
  27. <fieldset>
  28. <input name="uploadedfile" id="uploadedfile" type="file" size="46" />
  29. <input id="submit" type="submit" name="submit" value="Submit" class="submit" />
  30. </fieldset>
  31. </form>
  32.  
No me interesaNo está malBienÚtilMuy bien, muy útil (No Ratings Yet)
Loading ... Loading ...
Post de cabezaBomba en la(s) categoría(s): Desarrollo Web,Drupal,PHP,formularios | Tags: , , , , , , , , , , , , ,
Apr
29
2010
2

Subir archivo .txt para actualizar base de datos MySQL con PHP

La idea es actualizar nuestra base de datos con un Excel con el que estemos trabajando. El proceso es copiar las celdas (CTRL+C) que deseemos actualizar, y pegar el resultado en un archivo de texto (.txt), de modo que aparecerán en él los datos separados por tabulaciones (TAB).

La primera página tendrá un código parecido a ésto, y servirá para permitir al usuario subir ese archivo .txt:

  1. <script language="JavaScript">
  2. function validarDatos() {
  3. var frm = document.formulario;
  4. var err = "";
  5. if (!(frm.fileMuestrario.value)) {
  6. err= err + "Por favor, indique un archivo para subir.";
  7. }
  8. if (err=="") {
  9. return true;
  10. }
  11. else {
  12. alert(err);
  13. return false;
  14. }
  15. }
  16. function enviar() {
  17. var frm = document.formulario;
  18. if (validarDatos()) {
  19. var mensaje = "";
  20. mensaje = "Se va a actualizar la valoración de las empresas conforme a los datos del fichero especificado. ¿Confirma la operación?";
  21. if (confirm(mensaje)) {
  22. frm.submit();
  23. }
  24. }
  25. }
  26. </script>
  27. <form name="formulario" method="post" action="paso2.php" enctype="multipart/form-data">
  28.  
  29. Especifique la ruta donde se encuentra el fichero con los valores a actualizar
  30. <input type="file" name="fileMuestrario" size="55" class="campotexto">
  31. <a href="#" onClick="enviar(); return false;">ENVIAR</a>
  32. </form>
  33.  

La segunda página "desmenuza" este archivo y actualiza los valores en nuestra base de datos. Por supuesto, las columnas del archivo de texto deben corresponderse con las columnas de nuestra tabla, para no hacer un desbarajuste con los datos. La primera sería la [0], la segunda es [1], etc.
NOTA: El código utiliza db_query para las consultas a la base de datos porque este código lo hice para Drupal. Sin embargo, puede ser usado en cualquier parte, sólo con sustituir db_query con mysql_connect() y mysql_query.

  1. <?php
  2.  
  3. $registroResultados = "";
  4.  
  5. $subidaFichero = true;
  6. $archivo_temp = $_FILES['fileMuestrario']['tmp_name'];
  7. $archivo = $_FILES['fileMuestrario']['name'];
  8. if ($archivo != '') {
  9. if (!copy($_FILES['fileMuestrario']['tmp_name'], ficheroBackupRUTA)) {
  10. $subidaFichero = false;
  11. }
  12. else {
  13. $subidaFichero = false;
  14. }
  15. }
  16.  
  17. $row = 1;
  18. $ficheroMuestras = ficheroBackupRUTA;
  19. $fSalida = fopen ($ficheroMuestras, "r");
  20.  
  21. $table = 'nombre_tabla';
  22. // Se puede truncar (borrar) la tabla previo a actualizar, o no:
  23. db_query("TRUNCATE TABLE {%s}", $table); //OPCIONAL
  24.  
  25.  
  26. <strong>Actualización exitosa. Estos son los valores actualizados.</strong>
  27. <table>
  28. <tr>
  29. <td>sector1_id</td>
  30. <td>sector2_id</td>
  31. <td>parametro1</td>
  32. <td>parametro2</td>
  33. <td>parametro3</td>
  34. <td>parametro4</td>
  35. </tr>
  36.  
  37. ";
  38.  
  39. while ($data = fgetcsv ($fSalida, 2000, " ")) {
  40. $parametro1 = str_replace(',', '.', $data[0]);
  41. $parametro2 = str_replace(',', '.', $data[1]);
  42. $parametro3 = str_replace(',', '.', $data[2]);
  43. $parametro4 = str_replace(',', '.', $data[3]);
  44.  
  45. $sql = "INSERT INTO nombre_tabla (campo1, campo2, campo3, campo4) VALUES (".$parametro1.", ".$parametro2.", ".$parametro3.", ".$parametro4.")";
  46. db_query($sql);
  47.  
  48. <tr>
  49. <td>".$parametro1."</td>
  50. <td>".$parametro2."</td>
  51. <td>".$parametro3."</td>
  52. <td>".$parametro4."</td>
  53. </tr>
  54.  
  55. ";
  56.  
  57. }
  58. print "</table>
  59.  
  60. ";
  61. fclose ($fSalida);
  62. ?>
No me interesaNo está malBienÚtilMuy bien, muy útil (No Ratings Yet)
Loading ... Loading ...
Post de cabezaBomba en la(s) categoría(s): Desarrollo Web,MySQL,PHP | Tags: , , , , , , , , , , , , , , , , , ,

Creative Commons License
Webcidentes by Alejandro Garcia is licensed under a Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España License.
Based on a work at www.cabezabomba.com.