Difficoltà per l'invio contemporaneo di file (pdf) e foto (jpg) con Aruba

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ciao a tutti!
Ho creato una pagina (riportata in basso) che consentirebbe di inviare, attraverso form distinti, informazioni generiche e file (es. pdf) e foto (es. gif o jpg).
Il risultato che ottengo è che tutto viene caricato sul DB (tutti i campi testo/combo-box immessi/selezionati), i file (es., pdf + jpg) vengono uplodati sulla cartella public del sito (Aruba come hosting), ma nel DB, in funzione di come faccio la sequenza delle operazioni (es. carico prima la foto e poi la notizia), nei relativi campi "filename" e "fotografia" compare o, per entrambi, il file della foto o, per entrambi, il file del pdf. Insomma: viene fuori una duplicazione.
Presumo che il problema sia dovuto alla funzione setFileName (val), riportata in grassetto in basso, perché andrebbe a scrivere la stessa informazione su entrambi i campi "filename" e "fotografia" del DB. Non sono riuscito a creare un'altra funzione che gestisca in modo distinto i campi di upload files!
Come posso gestirli separatamente? sto "impazzendo"... Mi dareste una mano? :) GRAZIE in anticipo.
Saluti,
Davide

Segue il codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/DB.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "notizia") Then

MM_editConnection = MM_DB_STRING
MM_editTable = "Notizie"
MM_editRedirectUrl = "menu_area_riservata.asp"
MM_fieldsStr = "categoria_news|value|titolo|value|sottotitolo|value|decrizione_breve|value|descrizione|value|fonte|value|data_pubblicazione|value|filename|value|fotografia|value"
MM_columnsStr = "categoria_news|',none,''|titolo|',none,''|sottotitolo|',none,''|descrizione_breve|',none,''|descrizione|',none,''|fonte|',none,''|data_pubblicazione|',none,NULL|file_name|',none,''|fotografia|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
<%
Dim Inserimento_notizia
Dim Inserimento_notizia_numRows

Set Inserimento_notizia = Server.CreateObject("ADODB.Recordset")
Inserimento_notizia.ActiveConnection = MM_DB_STRING
Inserimento_notizia.Source = "SELECT * FROM Notizie"
Inserimento_notizia.CursorType = 0
Inserimento_notizia.CursorLocation = 2
Inserimento_notizia.LockType = 1
Inserimento_notizia.Open()

Inserimento_notizia_numRows = 0
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inserimento notizia</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function setFileName (val)
{
document.notizia.filename.value=val;
document.notizia.fotografia.value=val;
}
-->

</script>

<style type="text/css">
<!--
.style1 {
font-size: 16px;
font-weight: bold;
font-style: italic;
}
.style2 {font-size: 24px; font-weight: bold; font-style: italic; }
-->
</style>
</head>

<body>
<p align="center"><img src="images/foto_small.jpg" width="150" height="151" border="0"></p>
<p align="center" class="style1"><span class="style2">AREA RISERVATA</span></p>
<p align="center" class="style1">PAGINA PER L'INSERIMENTO DI UNA NOTIZIA</p>
<form ACTION="<%=MM_editAction%>" method="POST" name="notizia" id="notizia">
<table width="555" align="center">
<tr valign="baseline">
<td align="right" nowrap class="testo">Categoria News :</td>
<td><select name="categoria_news" id="categoria_news" title="<%=(Inserimento_notizia.Fields.Item("categoria_news").Value)%>">
<option value="A">Appuntamenti</option>
<option value="L">Libri</option>
<option value="N">Notizie</option>
<option value="R">Rubriche</option>
</select></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Titolo:</td>
<td><input type="text" name="titolo" value="" size="50">
</td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Sottotitolo:</td>
<td><input type="text" name="sottotitolo" value="" size="50">
</td>
</tr>
<tr>
<td align="right" valign="top" nowrap class="testo">Decrizione breve:</td>
<td valign="baseline"><textarea name="decrizione_breve" cols="50" rows="4"></textarea>
</td>
</tr>
<tr valign="baseline">
<td align="right" valign="top" nowrap class="testo">Decrizione completa:</td>
<td><textarea name="descrizione" cols="50" rows="10" id="descrizione"></textarea></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Fonte:</td>
<td><input type="text" name="fonte" value="" size="32"></td>
</tr>
<tr valign="baseline">
<td align="right" nowrap class="testo">Data pubblicazione (gg/mm/aaaa):</td>
<td><input type="text" name="data_pubblicazione" value="<%=date()%>" size="32">
</td>
</tr>
</table>
<p>
<input type="hidden" name="MM_insert" value="notizia">
<input name="filename" type="hidden" id="filename" value=" ">
<input name="fotografia" type="hidden" id="fotografia" value=" ">
</p>
</form>
<form action="../upload/newsOutputFile_img.asp" method="post" enctype="multipart/form-data" name="uploadForm" target="b" class="testo" id="uploadForm">
<div align="center">Seleziona l'immagine da inserire a corredo della news:
<input name="foto" type="file" id="foto" size="40">
<input name="Submit" type="submit" onClick="MM_openBrWindow('','b','resizable=yes,width=200,height=200')" value="Invia">
</div>
</form>
<form action="../upload/newsOutputFile.asp" method="post" enctype="multipart/form-data" name="uploadForm2" target="b" class="testo" id="uploadForm2">
<div align="center">Seleziona l'articolo da inserire a corredo della news:
<input name="blob" type="file" size="40">
<input name="Submit" type="submit" onClick="MM_openBrWindow('','b','resizable=yes,width=200,height=200')" value="Invia">
</div>
</form>
<p align="center">
<input name="Button" type="button" onClick="MM_validateForm('titolo','','R','sottotitolo','','R','data_pubblicazione','','R','decrizione_breve','','R');if (document.MM_returnValue) document.notizia.submit();return document.MM_returnValue" value="Inserisci Notizia">
</p>
<p align="center"><a href="menu_area_riservata.asp">Ritorna al men&ugrave; dell'Area Riservata</a></p>
</body>
</html>
<%
Inserimento_notizia.Close()
Set Inserimento_notizia = Nothing
%>
 

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ciao lukeonweb,
innanzi tutto grazie per l'interessamento!
spiego meglio quanto ho scritto. Sostanzialmente, dopo che si effettua l'upload dei file (che possono essere in PDF per l'articolo e in JPG per la foto), nel DB, i campi "filename" e "fotografia" vengono valorizzati con lo stesso contenuto che può essere o il nome del file PDF o il nome del file JPG. Tutto ciò, ovviamente, è indesiderato. Il mio obiettivo è far sì che il campo "filename" contenga il nome del file PDF, mentre il campo "fotografia" contenga il nome del file JPG.

Spero di essere stato adesso esaustivo.
Saluti,
Davide
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Chiarissimo!

Confesso di non aver letto un kilometro di codice, ma vedo che hai evidenziato:

<script language="JavaScript" type="text/JavaScript">
<!--
function setFileName (val)
{
document.notizia.filename.value=val;
document.notizia.fotografia.value=val;
}-->
</script>

Ad occhio mi pare normale che dia errore nel senso che intendi tu.

Fai cosi:

<script language="JavaScript" type="text/JavaScript">
<!--
function setFileName (val_pdf, val_jpg)
{
document.notizia.filename.value=val_pdf;
document.notizia.fotografia.value=val_jpg;
}-->
</script>

Fammi sapere.
 

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ciao!
ho provato, ma non va!
Questa volta, come risultato si ha che:
a) uno dei due campi nel DB (es. "filename") viene valorizzato con il nome del file, ma non sempre con quello corretto
b) l'altro dei due campi (es. "fotografia") viene valorizzato con undefined

In altri termini, in funzione della sequenza con cui si caricano i file (es., prima il PDF e poi il JPG) cambia il risultato: il campo "filename" contiene il nome file del JPG, mentre il campo "fotografia" contiene il valore undefined... e viceversa.

Boh!
 

Davvy

Nuovo Utente
20 Ott 2008
4
0
0
Ho risolto

Grazie!
il problema risiedeva nel file newsOutputFile_img.asp in cui non era impostato correttamente un parametro.
Sostanzialmente, è stato necessario creare una nuova funzione (simile a setFilename, chiamata setFotoname e impostata anche nella suddetta pagina asp).

Ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z Difficoltà codice data PHP 0
L difficoltà con Xampp. printing php mancante...help Web Server 6
T MYSQL: valore più frequente ma con difficoltà in più... PHP 1
S [PHP] Difficoltà con costrutto if/else PHP 6
yanhong telecamere avidsen e panasonic, difficoltà di collegamento IP Cam e Videosorveglianza 0
Z [PHP] Difficoltà con la IF su orari disponibili e occupati PHP 5
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
E difficoltà a modificare la pagina html HTML e CSS 2
P Difficoltà con decimali Pi Greco .NET Framework 4
D difficoltà a visualizzare tutte le foto della galleria PHP 10
C Difficoltà installazione CLASSE PHPMAILER PHP 1
M Difficoltà nel #div content HTML e CSS 1
F Difficoltà a caricare file grandi con Dreamweaver HTML e CSS 2
A difficoltà apache windows PHP 0
seranto Blocco preventivo e Registro dei Consensi per Cookie tecnici? Leggi, Normative e Fisco 2
D Come estendere la tariffa per Wordpress con Visa? Hosting 0
M Fullcalendar in Codeigniter, un aiuto per la chiamata $ajax ? jQuery 0
N Consigli SEO per il mio sito di web design SEO e Posizionamento 0
P Proiezione di Gauss per grafica su sfera in PVC Photoshop 0
M Sintassi "personalizzata" per mysql workbench? MySQL 0
MarcoGrazia Categorie per settore merceologico di Google SEO e Posizionamento 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
matteoraggi Local seo per un B&B di Forli SEO e Posizionamento 3
D Ical: Sto realizzando un gestionale per i miei appartamenti di casa vacanza PHP 0
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
P Aiuto per rendere un Bot Telegram Privato PHP 1
V Query per una somma PHP 2
A Tabella con bottoni per aggiornamento record PHP 6
G Consigli SEO per scrittura e struttura pagine SEO e Posizionamento 8
P Passare solo alcuni parametri a script per CSV PHP 0
A Consiglio per creazione sito web CMS (Content Management System) 1
A Regex per isolare link interni con rel noopener PHP 0
L form immagini per il database PHP 0
S CREAZIONE DI SITO PER CORSI DI FORMAZIONE WordPress 2
I [cerchiamo][retribuito] Grafico/a per stickers Offerte e Richieste di Lavoro e/o Collaborazione 0
R Cercarsi programmatore per GDR PBC Offerte e Richieste di Lavoro e/o Collaborazione 0
L Sessione e array per utenti PHP 0
A Sottoquery con group by per mese MySQL 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
V [Cerco] Socio e Sviluppatore per App PlacesFinder Offerte e Richieste di Lavoro e/o Collaborazione 0
M user agent per il download di api PHP 0
B Stringa sql per ricerca su più campi Database 1
Cosina Upload multiplo con invio allegati per email PHP 0
P Editor per la realizzazione di siti HTML e CSS 2
M Versione nativa per M1. Photoshop 1
A Aiuto per pagina php PHP 0
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
T [cerco] scrittore/scrittrice per articoli web Offerte e Richieste di Lavoro e/o Collaborazione 5
L Interfaccia grafica per gestire sql server .NET Framework 1
B javascript per problemi con pdf e Safari Javascript 0

Discussioni simili