在一个Jsp查询页面有一个保存按钮(获取路劲)和一个确定按钮(submit),当点击保存是就弹出来一个对话框选择路径,蛮多网站都有类似的按钮......我起初用的是<input type="file" name="url" value=""  />结果发现被坑爹了,这个控件只能指向一个文件,而不是文件夹。后台用的apache-poi-3.7操作的。那个保存按钮应该怎么做,请教下高手们。或者说我的思路根本就是错误的话,给点提示,晚辈受教了。

解决方案 »

  1.   

    你如果想要保存form表单里的数据的话,使用你那个确定按钮(submit)完全可以满足你的要求了,你那个神马保存按钮我理解你可能是想做一个附件上传的功能,那我告诉你,上传附件只能是文件,不能是文件夹,想上传文件夹,压缩成一个压缩文件在上传
      

  2.   

    是不是和http://topic.csdn.net/t/20050906/15/4252813.html这个问题差不多
      

  3.   

    我比较笨,没有说清楚......
    说白了就是用户给个路径把页面显示的数据保存到用户的电脑,保存成Excel表格。这个该怎么做?
    望路过的专家,给点参考,能实现的画加分的!
      

  4.   


     告警过滤处理,此处是告警计数累减
    UINT32 AlarmClearJudge(UINT8* pucCount,UINT8* pucAlarmByte)
    {UINT8 ucCount     = y2;UINT8 ucAlarmByte = y2;CHECK;ucCount = *pucCount;
    ucAlarmByte = *pucAlarmByte;if(ucCount > 0){ucCount--;}if(0 == ucCount){
    ucAlarmByte = CCU_ALARM_NORMAL;}*pucCount = ucCount;*pucAlarmByte = ucAlarmByte;y3;}
    温度传感器告警恢复
    VOID ResumeTempSensorAlarm(UINT8 ucSlot, UINT8 ucSenNum)
    {PGDC_CARD_INFO pstNode = CCU_NULL_PTR;if ( (ucSenNum >= z4)||(ucSlot >= MAX_INSIDE_CARD_NUM) )
    {return;} pstNode = &g_stInsideBoardInfo.stGdcInfo[ucSlot];
    if ( HIGH_ALARM_STATE == j2.ucAlarm){z3(CCU_RESID, z2, ucSenNum, j2.z8[0], z7);
    }else if ( SENSOR_FAULT_STATE == j2.ucAlarm )
    {z3(CCU_RESID, z2, ucSenNum, j2.z8[2], z7);}else{;}return;}
    判断是否有传感器失效告警
    VOID CheckSensorFaultAlarm(UINT8 ucSensorNum, GDC_CARD_INFO *pstNode, UINT32 ulFlag, UINT32 *pulAlarmFlag)
    {UINT8 ucAlarmValue = CCU_ALARM_NORMAL;if ( ucSensorNum >= z4 ){z5;return;}j4;if ( CCU_ALARM_ALARM == ulFlag)
    { AlarmExistJudge(&j3.ucSdrFaultCnt, &ucAlarmValue, MAX_GDC_ALARM_FILT_CNT);
    if ( (CCU_ALARM_ALARM == ucAlarmValue)&&(SENSOR_FAULT_STATE != j3.ucAlarm)){     
    pstNode->pstSenlist[5].fTargetValueVoltage = fFullOpenVol;
    /* 为了调节的及时性,当置阀门全开时,当即设置一遍阀门 */ValveSet(pstNode);
    j3.ucFistTempFlag = CCU_FALSE;j3.ucInputCnt = 0;j3.iTotalInTemp = 0;
    /* 如果告警状态发生变迁,先恢复之前的告警 */ResumeTempSensorAlarm(z2, ucSensorNum);
    /* 如果入风口传感器失效了,恢复入风口温度异常告警 */
    if ( (INPUT_TEMP_SENSOR_INDEX == ucSensorNum)&&(INPUT_TEMP_ALARM == z1) ){z1 = INPUT_TEMP_NORMAL;
    pstNode->ucInTempErrCnt   = 0;z3(CCU_RESID, z2, ucSensorNum, j3.z8[3], z7);}
      

  5.   

    j3.ucAlarm = SENSOR_FAULT_STATE; z3(CCU_RESID, z2, ucSensorNum, j3.z8[2], z6);
    /* 当温度传感器失效后,置温度值为-23度,只为本地显示更合理 */j3.iValue = SENSOR_FAULT_TEMP_VALUE;
    }z5;}else{ucAlarmValue = CCU_ALARM_ALARM;AlarmClearJudge(&j3.ucSdrFaultCnt,  &ucAlarmValue);
    if ( CCU_ALARM_NORMAL == ucAlarmValue){*pulAlarmFlag = CCU_ALARM_NORMAL;
    if ( SENSOR_FAULT_STATE == j3.ucAlarm ){ j3.ucAlarm = NORMAL_STATE;
    z3(CCU_RESID, z2, ucSensorNum, j3.z8[2], z7);}}else{z5;}}return;}
    判断是否有温度传感器告警
    VOID CheckSensorTempAlarm(UINT8 ucSensorNum, GDC_CARD_INFO *pstNode)
    {UINT8 ucAlarmValue = CCU_ALARM_NORMAL;BOOL bFlag = CCU_FALSE;CHECK;j4;if ( ucSensorNum >= z4 ){return;}  
    /* 高温告警判断,如果累加告警计数到告警计数,上报告警,如果累加计数清零,之前又上报过告警,就上报告警恢复 */
    if ( j3.iValue >= j3.iAlmUpperThreshold){   
    /* 对于入风口传感器,直接告警计数,对于出风口传感器,当阀门全开后才开始高温告警计数 */
    if (  (INPUT_TEMP_SENSOR_INDEX == ucSensorNum)||(  (ucSensorNum > INPUT_TEMP_SENSOR_INDEX)
    &&(  ((j5.fTargetValueVoltage - fFullOpenVol) < (HighFloatMark))
    &&((j5.fTargetValueVoltage - fFullOpenVol) > (LowFloatMark))))) {
    AlarmExistJudge(&j3.ucSdrHighCnt, &ucAlarmValue, MAX_GDC_ALARM_FILT_CNT);if ( CCU_ALARM_ALARM == ucAlarmValue)
    {bFlag = ( (HIGH_ALARM_STATE != j3.ucAlarm)&&(SENSOR_ENABLE == j3.ucEnable) );
    if ( bFlag ){j5.fTargetValueVoltage = fFullOpenVol;/* 如果告警状态发生变迁,先恢复之前的告警 */
    ResumeTempSensorAlarm(z2, ucSensorNum);/* 为了调节的及时性,当置阀门全开时,当即设置一遍阀门 */
    ValveSet(pstNode);z3(CCU_RESID, z2, ucSensorNum, j3.z8[0], z6);j3.ucAlarm = HIGH_ALARM_STATE;} }} }
    else{ucAlarmValue = CCU_ALARM_ALARM;AlarmClearJudge(&j3.ucSdrHighCnt, &ucAlarmValue);
    if ( CCU_ALARM_NORMAL == ucAlarmValue ){
    bFlag = ( (HIGH_ALARM_STATE == j3.ucAlarm)&&(SENSOR_ENABLE == j3.ucEnable) );
    if ( bFlag ){z3(CCU_RESID, z2, ucSensorNum, j3.z8[0], z7);j3.ucAlarm = NORMAL_STATE;}}}return;}