开发者

How To Upload Image

开发者 https://www.devze.com 2022-12-10 17:50 出处:网络
I am getting the following error whilst uploading a file. The parameters dictionary contains a null entry for parameter \'category_id\'

I am getting the following error whilst uploading a file.

The parameters dictionary contains a null entry for parameter 'category_id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult AddProduct(Int32, System.String, Single, System.String, System.String, System.String, System.String, System.String, System.String)' in 'Ecommerce.Controllers.AdminController'. To make a parameter optional its type should be either a reference type or a Nullable type. Parameter name: parameters

I am using a dialog box.

The View

<script type="text/javascript">
        $(function() {
        $("#dialog").dialog({
            bgiframe: true,
            height: 140,
            modal: true,
            autoOpen: false, 
            resizable: false
            })
    });

</script>

<div id="dialog" title="Upload files">
    <% using (Html.BeginForm("Upload", "File", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {%>
            <p><input t开发者_JAVA技巧ype="file" id="fileUpload" name="fileUpload" size="23"/> </p>
            <p><input type="submit" value="Upload file" /></p>
        <% } %>
</div>

<p>
    <label for="image_name">image_name:</label>
    <a href="#" onclick="jQuery('#dialog').dialog('open'); return false">Upload File</a>

    <%= Html.ValidationMessage("image_name", "*") %>
</p>

The Controller Action

public ActionResult AddProduct(int category_id, string product_name, float product_price, string product_desc, string weight, string image_name, string img_content, string available_qty, string isFeature)
{

    foreach (string inputTagName in Request.Files)
    {
        HttpPostedFileBase file = Request.Files[inputTagName];
        if (file.ContentLength > 0)
        {
            string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"), Path.GetFileName(file.FileName));
            string filecontent = Path.Combine(HttpContext.Server.MapPath("../Uploads"), Path.GetFileName(file.ContentType));

            image_name = Path.GetFileName(file.FileName);
            img_content = Path.GetFileName(file.ContentType);

            file.SaveAs(filePath);
        }
    }

    AdminImplementation _adminImplementation = new AdminImplementation();

    Boolean isfeature = Convert .ToBoolean(isFeature);

    if (isfeature)
    {
        isFeature = "Featured";
    }
    else
    {
        isFeature = "NotFeatured";
    }


    int i = _adminImplementation.addproduct(category_id, product_name, product_price, product_desc, weight,image_name ,img_content ,available_qty ,isFeature );

    ViewData["succm"] = "Product added successfully";
    return View();
}

Please suggest some useful answers.

Thanks

Ritz


Looks to me like you're not providing all the parameters required for a specific ActionResult. category_id isn't being provided to AddProduct. You'd need to show us your code for us to be able to find out what's really going wrong.

How are you calling that ActionResult?


**UPLOADING IMAGE AND SAVING PATH IN THE DATABASE
________________________________________________________________________________________
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
            <h3> Choose File to Upload in Server </h3>          
           <form action="Recent" method="post" enctype="multipart/form-data">

            <input type="file" name="file" />
            <input type="submit" value="upload" />
            </form>          
        </div>


</body>
</html>
____________________________________________________________________________________________

import java.sql.*;
import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import java.util.Hashtable;
import java.util.List;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.ParameterParser;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


/**
 * Servlet implementation class Recent
 */
@WebServlet("/Recent")
@MultipartConfig
public class Recent extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Recent() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // TODO Auto-generated method stub
         Sample  s1=new Sample();
         final String UPLOAD_DIRECTORY = "/home/pradeep/Documents/pradeep/WebContent/Images";
         if(ServletFileUpload.isMultipartContent(request)){
                try {
         List<FileItem> multiparts = new 
                            ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

                    for(FileItem item : multiparts){
                        if(!item.isFormField())
                        {
                            String name = new File(item.getName()).getName();
                            item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
                            String Path= "/home/pradeep/Documents/pradeep/WebContent/Images/" +name;


                          s1.connecting(Path);


                        }
                    }

                        request.setAttribute("message", "File Uploaded Successfully");
                } catch (Exception ex) {
                   request.setAttribute("message", "File Upload Failed due to " + ex);
                }          

            }else{
                request.setAttribute("message",
                                     "Sorry this Servlet only handles file upload request");
            }



                request.getRequestDispatcher("/Result.jsp").forward(request, response);




    }

}
__________________________________________________________________________________________
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import dbconnections.Connections;



public class Sample {
    Connections con=new Connections();

    public void connecting(String Path)
    {
        Connection conn=con.Connect();

        PreparedStatement pst;
        String query="INSERT INTO Student1 (Path) values (?)";
       try {

            pst=conn.prepareStatement(query);
            pst.setString(1,Path);
            pst.executeUpdate();

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // TODO Auto-generated method stub
    }


}
0

精彩评论

暂无评论...
验证码 换一张
取 消